nginx 反向代理一个server下配置多个location域名问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 反向代理一个server下配置多个location域名问题相关的知识,希望对你有一定的参考价值。

比如我这样设置完了 怎么才能访问第二个 tianyuan的那个应用,打w w w .pi go s s.c o m 只能访问第一个啊

server
listen 80;
server_name w w w .p ig os s. c o m;
location /
proxy_pass h tt p://p ig oss;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


location /
proxy_pass ht tp://ti an yuan;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

这样的用法,当然只能到第一个的,要这样用
在http节点中加入这个,server的具体值你自已改
upstream cjdby
server pigoss;
server tianyuan;

在server节点中,只保留一下location,然后把proxy_pass改成这样

proxy_pass http://cjdby;
其它的set_header不变追问

我是想设置 htt p://1 . c om /1 ht t p:1 . c om /2 这样的 怎么设置啊?

追答

upstream cjdby
server 1.com/1;
server 1.com/2;

proxy_pass还是与上面相同

你试试改成这样行不行

追问

估计不行~~我好像试过,我明天再用这方法试试~~谢谢啊~
果然不行 说 有非法字符

参考技术A 当你设置两个 location / 时,当然只会匹配第一个了。 你的意思是不是要配置两个域名?

server
listen 80;
server_name w w w .1. c o m;
location /
proxy_pass h tt p://p ig oss;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;



server
listen 80;
server_name w w w .2 c o m;
location /
proxy_pass htt p://2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

追问

我是想设置 htt p://1 . c om /1 ht t p:1 . c om /2 这样的 怎么设置啊?

反向代理情况下配置nginx错误页面跳转

参考技术A 如果是反向代理,后台Tomcat 处理报错抛出404,想把这个状态让Nginx反馈给客户端或者重定向到某个连接。

在 server/location 内开启以下变量,我们才能自定义错误页面

proxy_intercept_errors on;

以上是关于nginx 反向代理一个server下配置多个location域名问题的主要内容,如果未能解决你的问题,请参考以下文章

nginx反向代理多个tomcat服务

nginx代理常用配置

nginx 反向代理配置之---指定单域名

nginx配置反向代理和负载均衡

nginx的反向代理配置

反向代理情况下配置nginx错误页面跳转