首页 > 解决方案 > 将 https 反向代理到 http 后,在 nginx 中出现“502 Bad Gatway”错误

问题描述

我有一个在 8030 端口上运行的 Web 服务器和一些应该通过 80 端口访问的静态 Web 文件。前端和后端文件都在同一台 linux 机器上。

前端使用 REST API 从后端接收数据。我有一个静态 IP 和一个域名。DNS 服务器是一个 CDN,它将https://abcom连接到我的 IP 地址,即这里的 1.2.3.4。我的服务器本身没有 SSL 认证。

所以我的前端应用程序托管在https :// abcom上,并向 http://1.2.3.4:8030/v1/getdata 发出 GET请求

这是我的 NGINX 配置文件:

upstream backend {
        server 1.2.3.4:8030;
}

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

        root /home/user/static;

        index index.html;

        server_name https://a.b.com;

        location / {
               
                try_files $uri$args $uri$args/ /index.html;
        }

        location /v1 {
                proxy_pass http://backend;

        }
}

静态文件已成功加载,但对我的应用程序服务器的 AJAX GET 请求返回“502 Bad Gateway”。

我怎样才能解决这个问题?

防火墙规则已设置,使用静态 IP 进行远程访问即可。

标签: nginxreverse-proxy

解决方案


我将配置文件更改如下,现在一切正常:

upstream backend {
        server localhost:8030;
}

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

        index index.html;

        server_name _;

        location / {

                root /home/user/output;

                try_files $uri$args $uri$args/ /index.html;
        }

        location /v1 {
                proxy_pass http://backend;
        }

}

多亏了这个


推荐阅读