nginx - 将 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 进行远程访问即可。
解决方案
我将配置文件更改如下,现在一切正常:
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;
}
}
多亏了这个
推荐阅读
- mongodb - Mongodb 中的查询操作,在同一集合的两个查询之间从 find left outer 中查找前 10 行
- php - 将 2 个对象放入对象内部
- javascript - 滑动滑块中带有 CSS 过渡的第二张幻灯片的幻灯片闪烁
- transactions - PynamoDB TransactWrite 更新抛出 ValidationException
- sockets - Kotlin 中的 Socket.io 用于 ProtoPie Connect Bridge,每次都收到相同的数据
- sql - Postgres - 如何使用 UNION ALL 实现 UNION 行为?
- scala - mapGroupsWithState 中 eventTimeTimeout 和 processingTimeTimeout 的区别
- angular - 将对象中的文本更改为新键打字稿
- android - 如何在没有消息的情况下发送电子邮件意图?
- reactjs - 无法在 NEXTJS 上显示降价