1V192M资源:高性能的资源配置横扫全国:畅销全国各地边缘圈:独特的边缘市场幸福之星:让您享受幸福生活的明星产品
《老王:拥有1V192M资源...
2023-12-31
场景1
给客户开发微信公众号后台程序,大家都知道微信公众号必须要求80/443端口,OK,如果客户要求云服务器托管,那就GG了。因为同时监听80端口的服务端只能有一个,每个客户都得给他配一台服务器,哈哈,简直不要太烧钱。
要知道节约是一种美德,必须得用nginx解决之。
场景2
作为一个程序员,不同时开发N个项目简直体现不了自己的价值。
比如同时开发了如下几个springboot项目:(不要问我为何如此优秀,因为下面项目都是虚构)
为了同时可以调试开发,得给他们配上不同端口,那就变成了:
1. 127.0.0.1:8001/Rocket 火箭配套软件 2. 127.0.0.1:8002/Missle 导弹配套软件 3. 127.0.0.1:8003/Plane 飞机配套软件 4. ....等等
你可以想想,会经常忘记哪个端口是哪个项目,而且程序员都有强迫症啊,万一哪天8002项目成功投产不需要开发了,我是应该换个项目顶到8002端口呢,还是把8003之后的端口号依次减1重新配置呢。光是思考这个问题,有洁癖的程序员就用了半个下午…茶不思饭不想,小小码农悲凉悲凉
用了nginx就很简单了,统一通过80端口对外提供服务,根据路径自动转发到对应端口的项目上,完事。
小伙伴看到之后都惊呆了,不是一般社员。
直接给出配置文件这种方式,没有什么意义,因为我从网上找的很多都是错误的,真是不够意思。必须得具体实现下。
如何实现,很简单,搞2个项目放在两个端口上,然后修改nginx配置文件,最后实现从80端口进来自动根据路径转发到对应项目端口。
如何将两个项目放到两个端口,我这边常用两种,开发阶段就是两个springboot项目配置到不同启动端口,投产阶段就是服务器上两个tomcat配置不同端口。
OK,毕竟有一部分童鞋不用springboot,咱们采用第二种方式。
round1 搞两个tomcat
这个不说了,我弄了两个tomcat,如图:
round2 修改配置文件conf/server.xml
将监听端口分别改为8001、8002如下,注意为了避免冲突,tomcat1下端口改为801x,tomcat2下端口改为802x。
如下配置,tomcat1在8012端口提供服务,tomcat2在8022端口提供服务。
<!-- tomcat1配置 --><Server port="8011" shutdown="SHUTDOWN"><Connector port="8012" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8013" /> <Connector port="8014" protocol="AJP/1.3" redirectPort="8015" /><!-- tomcat2配置 --><Server port="8021" shutdown="SHUTDOWN"><Connector port="8022" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8023" /><Connector port="8024" protocol="AJP/1.3" redirectPort="8025" />
round3 验证两个tomcat启动成功
双击bin/startup.bat分别启动两个tomcat,如图:
打开浏览器分别输入地址,均可显示tomcat欢迎页
127.0.0.1:8012127.0.0.1:8022
如图汤姆猫真是越来越妖娆了
round4 开发两个项目
开发
项目1 Rocket文件夹,里面包含index.html文件,内容为
项目2 Missle文件夹,里面包含index.html文件,内容为
将两个项目分别放到tomcat1、tomcat2 的webapps目录下。
重启两个服务器,然后使用如下地址访问:
127.0.0.1:8012/Rocket/index.html127.0.0.1:8022/Missle/index.html
效果如下:
round5 修改nginx配置文件
此时可以修改nginx配置文件,通过监听80端口,然后根据路径再将请求转发到不同端口
具体就是将Rocket请求转发到8012端口,将Missle请求转到8022端口,如下:
#gzip on; upstream sever_rocket{server 127.0.0.1:8012;}upstream sever_missle{server 127.0.0.1:8022;} server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } #匹配Rocket开头请求 location ^~/Rocket{ proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #转发到sever_rocketproxy_pass http://sever_rocket;} #匹配Missle开头请求location ^~/Missle { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #sever_missleproxy_pass http://sever_missle;} }
round6 大功告成
如图,一个端口进来,自动转发到相应端口,安全、健康、条理、环保。
厉害了。
关键是nginx的配置文件,例如:
location ^~/Rocket
location表示匹配请求, ^~表示nginx按请求字符串匹配度最高的来匹配。
nginx的配置相当复杂,但是who care,程序员只要够用就行了。
以上内容就是为大家推荐的nginx配置转发接口乱码(接口乱码原因和解决方法)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.cnfyy.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:nginx配置转发接口乱码(接口乱码原因和解决方法)
本文地址:https://www.cnfyy.com/shcs/122789.html
相关文章
手机怎么那么贵,为什么苹果机配置差其他手机那么多? 由于底层架构不同的关系,一般苹果手机在使用后,不怎么需要自己去打理,而安卓手机刚开始操...
2023-04-21
手机配置是怎么看,realme查看电池容量? 1、在手机中选择设置的图标进入。 2、进入手机的设置列表后,选择电池的选项进入。 3、在电池设置界面,可以...
2023-04-21
手机怎么查看配置,怎么查看诺基亚手机的配置? 方法一:在菜单上按通话键,输入*#0000# 方法二:打开功能表,选设置,点手机,手机管理,设备更新。...
2023-04-20
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)