nginx Proxy 配置

1、代理模块

ngx_http_proxy_module

2、代理配置

代理

Syntax: proxy_pass URL; #代理的后端服务器URL

Default: —

Context: location, if in location, limit_except

头信息

Syntax: proxy_set_header field value;

Default: proxy_set_header Host $proxy_host; #设置真实客户端地址

proxy_set_header Connection close;

Context: http, server, location

超时

Syntax: proxy_connect_timeout time;

Default: proxy_connect_timeout 60s; #链接超时

Context: http, server, location

Syntax: proxy_read_timeout time;

Default: proxy_read_timeout 60s;

Context: http, server, location

Syntax: proxy_send_timeout time; #nginx进程向fastcgi进程发送request的整个过程的超时时间

Default: proxy_send_timeout 60s;

Context: http, server, location

3、启用 nginx proxy 代理

环境两台nginx真实服务器

a、nginx-1 启动网站(内容)(作为网站服务器)

nginx-1的ip:192.168.62.157

已经编译安装好,检查nginx是否启动是否可以访问

[root@nginx-server ~]# cat /home/www/html/index.html

1000phone

[root@nginx-server ~]# cat /etc/nginx/conf.d/aa.conf

server {

listen 80;

server_name localhost;

location / {

root /home/www/html;

index index.html index.hml;

}

}

b、nginx-2 启动代理程序

nginx-2的ip:192.168.62.159

配置nginx的yum源直接yum安装

启动

编辑nginx的配置文件(编辑之前,删除/注释掉之前的配置):

[root@nginx-server ~]# vim /etc/nginx/conf.d/default.conf

server {

listen 80;

server_name localhost;

location / {

proxy_pass http://192.168.62.157:80;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 30;

proxy_send_timeout 60;

proxy_read_timeout 60;

}

}

重新加载nginx配置文件

[root@nginx-server ~]# nginx -s reload

c、nginx proxy 具体配置详解:

proxy_pass :真实服务器的地址,可以是ip也可以是域名和url地址

proxy_set_header:重新定义或者添加发往后端服务器的请求头

proxy_set_header X-Real-IP :启用客户端真实地址(否则日志中显示的是代理在访问网站)

proxy_set_header X-Forwarded-For:记录代理地址

proxy_connect_timeout:后端服务器连接的超时时间发起三次握手等候响应超时时间

proxy_send_timeout:后端服务器数据回传时间就是在规定时间之内后端服务器必须传完所有的数据

proxy_read_timeout :nginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接