标题有限,写的不太情况,这里举例说下。。
有个测试服务器,IP 是 172.16.0.8,想通过绑定 host 的方式访问该服务器,比如:
127.16.0.8 www.abc.com
该测试服务器通过 NGINX 来反向代理到本机的 http://127.0.0.1:3000 环境
这里需求有些不常见,期望的访问效果,举例如下:
1、访问自定义路径 http://www.abc.com/xxx/yyy.php 时,反向代理到 http://127.0.0.1:3000 2、访问其他路径,比如 http://www.abc.com/1/2/3.php 时,转发到线上环境的 http://www.abc.com/1/2/3.php
总之就是只有明确指定的路径才会反向代理到 http://127.0.0.1:3000,其他的都直接请求线上环境。
如果有描述不清楚的地方,请指正,谢谢!
1 paragon 2019-12-14 17:04:33 +08:00 这个你定义两个 location 不就行了嘛? |
2 nightwitch 2019-12-14 17:19:20 +08:00 伪代码 location xxx { proxy_pass 127.0.0.1:3000 } location / { root_path xxxxxx } |
![]() | 3 xiri 2019-12-14 18:09:10 +08:00 把 proxy_pass 放在单独的 location 里面不就行了吗,不过要注意一下 location 的匹配优先级 |
4 hhs66317 OP @nightwitch 这个 root_path 可以写 http://www.abc.com 么 |
![]() | 6 realpg PRO 找一个会基础 nginx 配置的人吧 我觉得你这些需求 50 块钱就能解决问题 |
7 Hanada 2019-12-15 12:56:42 +08:00 via Android @hhs66317 你的那个是线上环境的话继续用 proxy_pass 反向代理你的 http://www.abc.com |
8 AlbertSun 2019-12-15 22:20:12 +08:00 我想我大概理解你的意思了,这样试试: server { listen 80; server_name www.abc.com; location /xxx { proxy_pass http://127.0.0.1:3000; # 其余代码 } location / { proxy_pass http://www.abc.com; # 其余代码 } } 前提是 127.16.0.8 这台服务器不要修改 www.abc.com 的 host。 |
9 hhs66317 OP 感谢各位,解决了我的问题! 最近杂事较多,才想起来过来看看,惭愧 |