添加可以用nginx本地访问的子域名

问题描述 投票:0回答:1

我有 nginx.conf 文件:

server {
        listen       80;
        server_name  website.test;
        location / {
             proxy_pass http://127.0.0.1:3000;
        }
}
server {
        listen       80;
        server_name  server.website.test;
        location / {
            proxy_pass http://127.0.0.1:1337;
        }
}

和编辑后的主机文件:

127.0.0.1 website.test
127.0.0.1 server.website.test

为什么 url“http://website.test”给出 502 错误,但“http:website.test:3000”却有效? 如何更改配置以便不需要在 URL 中提供端口?

我查看了 nginx 文档和类似的 SO 帖子,但无济于事。我注意到,如果我将我的设备 IPv4 地址 (192.168.xxx.yyy) 提供给“proxy_pass”,它确实可以工作。但这不是我要找的。无论我的设备是否连接到网络,我都希望它能够工作。

nginx server ip nginx-reverse-proxy nginx-config
1个回答
0
投票

502 还应该将一些信息写入您的错误日志文件(可能位于

/var/log/nginx/error.log
)。

如果提供的是您的完整配置,您可能会缺少一些标头,以便反向代理发挥作用。

我为反向代理设置的默认标头集是:

add_header          X-Upstream $upstream_addr;
proxy_http_version  1.1;
proxy_set_header    Connection "upgrade";
proxy_set_header    Host $http_host;
proxy_set_header    Upgrade $http_upgrade;
proxy_set_header    X-Real-IP $remote_addr;
proxy_set_header    X-Forwarded-For $remote_addr;
proxy_set_header    X-Forwarded-Host $server_name;
proxy_set_header    X-Forwarded-Proto $scheme;

如果您提供

Host
X-Real-IP
,许多应用程序确实可以工作,但我个人很幸运将它们组合到我在代理配置中包含的这个模板。只需将它们添加到您的
location {}
中,然后尝试...

© www.soinside.com 2019 - 2024. All rights reserved.