使用 ubuntu 16.04 和 nginx 设置使用不同端口的多个网站

使用 ubuntu 16.04 和 nginx 设置使用不同端口的多个网站

我正在尝试设置具有不同端口但相同域名的多个网站。例如,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 安全组中。

相关内容