用nginx反向代理的问题?(详内)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用nginx反向代理的问题?(详内)相关的知识,希望对你有一定的参考价值。

我用自家电脑做服务器,虽然本地联通没有封80端口,但我还是想看看反向代理是怎么搞的。现在就瞄准了用nginx做反向代理。我准备在一台VPS上用nginx做反向代理,我想请问几个问题:
1.请问nginx反向代理如何配置?
2.能否代理端口?比如我访问a.com代理到b.com:8090,因为如果封80的话,只能改端口了。
3.比如,我访问域名a.com反向代理到了b.com:8090,在地址栏中,显示的是a.com还是b.com:8090?如果进入二级目录,文章目录的话,是否会显示真实域名,也就是b.com:8090/xxx?
感谢……

1、基本配置:
server
listen 80;
server_name 域名;

location /
proxy_pass 服务器IP; //服务器ip地址
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


2、可以
3、地址栏是 a.com
进入二级目录是 a.com/xxx
参考技术A 1、基本配置:
server
listen 80;
server_name 域名;

location /
proxy_pass 服务器IP; //服务器ip地址
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


2、可以
3、地址栏是 a.com
进入二级目录是 a.com/xxx

nginx串联(一台反向代理,一台分发)引起问题

参考技术A 在工作中遇到nginx串联的502问题
由于历史原因会出现既有域名访问接口,也有ip+端口号访问接口,也有域名+端口号访问接口
简单介绍下大概架构如下(全是docker部署的)
一台nginx作为主机,用来反向代理域名到ip+端口号,并配置两个nginx连接池(一主一备)

proxy_params内容如下:

上面这样配置后会导致如下问题
1). 访问不存在的uri时并不会立即返回404,虽然后面的nginx会返回404,但主nginx会显示500
2). 偶尔会出现502 no live upstream while conneting to upstream,client: XXX.XXX.XXX.XXX,server:localhost,request:"GET uri HTTP/1.1", upstream:" http://WEB_NGINX_POOL/ " host:"host"

以上是关于用nginx反向代理的问题?(详内)的主要内容,如果未能解决你的问题,请参考以下文章

问题解决1:nginx反向代理丢失js、css问题

nginx 反向代理请求cookie丢失问题

nginx 反向代理uwsgi,导致Django项目下载文件只有1G

用nginx TCP反向代理作mail邮件代理

为啥要用Nginx反向代理

nginx反向代理为啥不成功