我正在尝试设置具有不同端口但相同域名的多个网站。例如,domain.com, domain.com:81, domain.com:82
下面是我的 nginx 配置,
/etc/nginx/sites-enabled/magento225
和
upstream fastcgi_backend {
server unix:/run/php/php7.1-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 81;
listen [::]:81;
server_name domain.com;
return 301 https://$server_name$request_uri;
root /var/www/html/magento226;
location / {
proxy_redirect http://127.0.0.1:81/;
}
}
server {
listen 443 ssl;
server_name domain.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/wpdev1.tk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wpdev1.tk/privkey.pem;
set $MAGE_ROOT /var/www/html/magento225;
set $MAGE_MODE developer;
include /var/www/html/magento225/nginx.conf.sample;
}
之后 nginx 重启失败。我尝试删除以下代码
location {
proxy_redirect http://127.0.0.1:81/;
}
这次 nginx 可以重新启动,但网站无法正常工作。即domain.com:81
我已通过更新安全规则启用了 ec2 实例的端口 (81)。如有任何想法,我将不胜感激。谢谢。
更新 1:
upstream fastcgi_backend {
server unix:/run/php/php7.1-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/html/magento225;
}
server {
listen 81;
listen [::]:81;
server_name domain.com;
root /var/www/html/magento226;
location / {
proxy_pass http://127.0.0.1:81/;
}
}
尝试了上述配置,但无法连接81港口。
答案1
似乎在您的更新中,端口 81 服务器块使用该 proxy_pass 语句将流量直接返回到自身,这可能是它根本不返回请求的原因。
您是否想点击那里定义的上游?您需要更改:
proxy_pass http://127.0.0.1:81/;
到
proxy_pass http://fastcgi_backend/;
如果是这样的话。
答案2
配置 Nginx 服务器块后,将端口 81 添加到您正在使用的 VPS 实例的 EC2 安全组中。