当前位置:首页 > 技术文章 > 正文内容

路由虚拟服务器nginx转发400问题

arlanguage5个月前 (12-17)技术文章36

背景:

关于网络和硬件:旧服务基本是在公有云服务器或提供公网IP的服务器操作的。

关于服务:后端jar服务运行,前端vue生成的包并通过nginx转发。

以前的nginx配置文件:

location / {
          root   /data/project/web/;
          try_files $uri $uri/ /index.html;
          index  index.html index.htm;
        }        

location /prod-api/{
          proxy_set_header Host $http_host:$server_port;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header REMOTE-HOST $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://localhost:8895/;
        }

现状:

客户提供公网IP地址,但需要自己在路由器上配置。

关于路由器上配置虚拟服务器,主要指定协议,外网端口,内网服务器IP,内网端口等属性。

比如外网端口设为9000,内网IP:192.168.1.100,内网端口:80,则访问外网IP:9000,相当于转发到内网服务器IP80端口上,也就是把80端口提供给外网访问。

然后按之上配置nginx,会报400错误。看日志显示IP:9000:80类似的信息。

解决方案:

从以上日志查看,感觉IP后带两个端口,显示很奇怪,相当做了两次转发,于是把配置修改为:

location / {
          root   /data/project/web/;
          try_files $uri $uri/ /index.html;
          index  index.html index.htm;
        }        

location /prod-api/{
          proxy_set_header Host $http_host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header REMOTE-HOST $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://localhost:8895/;
        }

主要去掉转发里的$server_port,重启后一切正常。

延伸:

还有一种方式,就是直接把公网IP设置在服务器,也应该可以访问,就不需要改配置了,但没有测试了。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/275.html

分享给朋友:

“路由虚拟服务器nginx转发400问题” 的相关文章

【Nginx进阶】Nginx安全配置

在本章中,我们将详细介绍 Nginx 的安全配置,包括 SSL/TLS 安全、访问控制、HTTP 安全头、防止 DDoS 攻击和日志审计。Nginx安全配置在现代网络环境中,保障 Web 服务器的安全性至关重要。Nginx 作为一个高性能的 Web 服务器和反向代理服务器,通过合理的安全配置,可以有...

Nginx:为什么高性能?Master&worker如何配合?负载均衡了解吗?

1. Nginx架构及工作流程Nginx真正处理请求业务的是Worker之下的线程。worker进程中有一个ngx_worker_process_cycle()函数,执行无限循环,不断处理收到的来自客户端的请求,并进行处理,直到整个Nginx服务被停止。当一个 worker 进程在 accept()...

Python WSGI 高性能服务器 - Gunicorn 简介

一、简介Gunicorn 意即 Green Unicorn,绿色独角兽。它是一个被广泛使用的高性能的 Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目。它具有如下特性:原生支持 WSGI、Django 和 Paster自动工作进程管理简单的 Pytho...

我采访了一位 Pornhub 工程师,聊了这些纯纯的话题

成人网站在推动 Web 发展方面所起到的作用无可辩驳。从突破浏览器的视频能力限制,到利用 WebSocket 推送广告(防止被广告拦截器拦截),你必须不断想出各种聪明的办法,让自己处在 Web 技术创新的最前沿。最近,我有幸采访了大型成人网站 Pornhub 的一位 Web 开发工程师,了解了相关的...

如何让Nginx更安全? nginx怎么保证高可用

网络安全的重要性不言而喻。那么小伙伴们有没有在日常使用 Nginx 的时候,特意去关注下它的安全配置呢?今天松哥和小伙伴们讨论一下如何安全的使用 Nginx,给大伙几个建议。一 使用最新版建议使用最新版的 Nginx,对于已经部署的 Nginx,要及时更新到最新版本,以确保所有已知的安全漏洞都已修补...

提升网站性能开发的10个技巧 提升网站性能开发的10个技巧是什么

随着网络的高速发展,网络性能的持续提高成为能否在芸芸App中脱颖而出的关键。高度联结的世界意味着用户对网络体验提出了更严苛的要求。假如你的网站不能做到快速响应,又或你的App存在延迟,用户很快就会移情你的竞争对手。以下为大家总结10条有关性能提升的经验,以供参考:1. 采用反向代理服务器(Rever...