Nginx 配置错误,反向代理在启动 nginx 时显示“Welcome to nginx”

Posted

技术标签:

【中文标题】Nginx 配置错误,反向代理在启动 nginx 时显示“Welcome to nginx”【英文标题】:Nginx error with configuration wile reverse proxy shows "Welcome to nginx" when starting nginx 【发布时间】:2018-06-23 11:25:06 【问题描述】:

这是我第一次玩 nginx。我有 2 台快速服务器在我的 localhost 中运行,端口为 3001 和 3002。运行良好。 我正在使用 ubuntu 这些是我为 nginx 采取的步骤。

首先我使用 sudo apt-get install nginx

删除启用站点和可用站点中的默认文件sudo rm -f 默认

在我有这些代码的可用站点中创建默认文件(现在只是尝试在端口 3001 中运行一台服务器。)sudo vi 默认 服务器 听 80; 地点 / proxy_pass "http://192.168.100.5:3001";

从站点可用到站点启用的符号链接默认值: sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

启动 nginx sudo /etc/init.d/nginx 启动

我得到的只是欢迎使用 nginx 如果您看到此页面,则 nginx 网络服务器已成功安装并正在运行。需要进一步配置。

我也尝试在启用站点时使用此配置

上游项目 服务器http://localhost:3001; 服务器 听 80;

但它会产生相同的结果。请任何指导都会有所帮助。谢谢。

【问题讨论】:

【参考方案1】:

尝试将proxy_pass 与本地主机一起使用且不带引号。

假设您希望端口3001 上的应用程序作为您的网站,您需要这样配置它:

location / 
    proxy_pass http://localhost:3001/;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

此代码需要位于您的default 文件的server 块中。

它将所有流量从位置/(您的网络根)传递到端口3001

一个完整的例子如下所示:

server 
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name example.com;

    location / 
        proxy_pass http://localhost:3001/;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    

解释:

proxy_pass http://localhost:3001/;

这会将所有流量传递给port 3001


proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

这会将诸如发起调用的 IP 等信息传递给代理服务器。


proxy_set_header X-Forwarded-Proto $scheme;

这将转发请求使用的sheme/协议信息。

【讨论】:

会试一试你能告诉我这是做什么的吗 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;【参考方案2】:

主要是您的配置文件问题。 请参阅下面的示例,不同的 express 应用程序在 3000 和 3001 端口中运行。这就是我的 nginx 配置文件中配置文件的样子

server   
    listen 0.0.0.0:80;
    server_name stage.chat.in www.stage.chat.in;
    location / 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $proxy_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass  http://127.0.0.1:3000;
    

server   
    listen 0.0.0.0:80;
    server_name api.chat.in www.api.chat.in;
    location / 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $proxy_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass  http://127.0.0.1:3002;
    

【讨论】:

以上是关于Nginx 配置错误,反向代理在启动 nginx 时显示“Welcome to nginx”的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置——单域名反向代理多个端口

nginx配置+虚拟主机+负载均衡+反向代理

使用反向代理在 Nginx 中的 PhpMyAdmin 错误显示

Nginx的反向代理及ssl配置

Nginx反向代理+Tomcat服务

Nginx反向代理400错误