最近项目遇到比较坑爹的一种情况: 服务器已经好了,但是备案没有通过,80端口就不能用,而且因为代码是别人写的,做了很多的访问域名限制,不能通过IP访问,这个时候又需要向客户展示进度,让她们能通过某个域名访问网站。
首先我们想到了一种解决方案: 那就是改host(因为代码中配置三个二级域名,所以这里会有三个),将本地某个访问域名指向我们的服务器
xx.xxx.xxx.xx apistaging.example.cn
xx.xxx.xxx.xx developers.staging.example.cn
xx.xxx.xxx.xx staging.example.cn
这样就存在一个问题,那就是每个人都需要改动本地host才能访问到服务器。然后甲方会告诉你: 我不懂电脑,不懂怎么改host,我就想简单点,直接访问就好了,你们想方案吧。
于是第二个方案出炉了: 做一个反向代理,在我们的一个中间的服务器上跑一个nginx代理服务,通过它去访问服务器,这样只要在一台机器上配置host跟nginx就好了。于是一下配置产生了,因为代码中控制了跳转整个网站的域名,所以这份配置看起来跟其他正常配置会有所不同,不完全适合其他项目。
server {
listen 80;
server_name visit_url;
location = / {
rewrite ^/ visit_url/zh-CN;
}
location / {
proxy_set_header Host visit_url:3000;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass visit_url:3000;
proxy_next_upstream error;
proxy_redirect off;
}
}
说道这里,是觉得有点干涩,没啥料,那就加点笔记纪录下学习nginx的过程。
main
events {
....
}
http {
....
upstream myproject {
.....
}
server {
....
location {
....
}
}
server {
....
location {
....
}
}
....
}
https://www.zybuluo.com/phper/note/89391