我刚用laravel forge设置了3台服务器。 1个负载均衡器和2个包含我的laravel项目的文件服务器。
我已在所有三台服务器上安装了SSL证书,并将我的域指向负载均衡器服务器IP地址。
然而,当我现在访问我的网站url时,我得到一个重定向循环。 有人有任何建议吗?
以下是负载均衡器的配置(已删除域名):
server {
listen 80;
server_name mydomain.no;
return 301 https://mydomain.no$request_uri;
}
include upstreams/mydomain.no;
server {
listen 443 ssl;
server_name .mydomain.no;
# FORGE SSL (DO NOT REMOVE!)
ssl_certificate /etc/nginx/ssl/mydomain.no/16768/server.crt;
ssl_certificate_key /etc/nginx/ssl/mydomain.no/16768/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/mydomain.no-error.log error;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://116816_app/;
proxy_redirect off;
# Handle Web Socket connections
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
这是来自我的文件服务器的nginx conf:
server {
listen 80;
server_name mydomain.no;
return 301 https://mydomain.no$request_uri;
}
server {
listen 443 ssl;
server_name .mydomain.no;
root /home/forge/mydomain.no/httpdocs/public;
# FORGE SSL (DO NOT REMOVE!)
ssl_certificate /etc/nginx/ssl/mydomain.no/16782/server.crt;
ssl_certificate_key /etc/nginx/ssl/mydomain.no/16782/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/mydomain.no-error.log error;
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
server {
listen 80;
server_name mydomain.no;
return 301 https://mydomain.no$request_uri;
}
server {
listen 443 ssl;
server_name .mydomain.no;
root /home/forge/mydomain.no/httpdocs/public;
# FORGE SSL (DO NOT REMOVE!)
ssl_certificate /etc/nginx/ssl/mydomain.no/16783/server.crt;
ssl_certificate_key /etc/nginx/ssl/mydomain.no/16783/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/mydomain.no-error.log error;
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
答案 0 :(得分:0)
您正在使用http
方案连接到您的上游。这会导致它重定向到https
,然后负载均衡器使用proxy_pass https://116816_app/;
向上游路由。因此循环。
使用http
连接上游:
server {
listen 80;
listen 443 ssl;
...
}
或允许您的上游文件服务器使用{"123","1.1","321","12","345","345"}
接受连接:
{{"123","1.1"},{"321","12"},{"345","345"}}