0%

Nginx配置反向代理

Nginx配置反向代理

在server块中配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#监听80端口
listen 80;
#监听的ip或域名
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
# 转发到127.0.0.1:8080
proxy_pass http://127.0.0.1:8080;
}

也可以根据访问路径的不同来访问不同的服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
listen 8000;
server_name localhost;
#项目的目录
root /www/work/;
# 路径中包含/springmvc/则跳转至8080端口
#~表示后边是正则表达式
location ~ /springmvc/ {
root html;
index index.html index.htm;
# 转发到http://127.0.0.1:8080
proxy_pass http://127.0.0.1:8080;
}

# 路径中包含/webstudy/则跳转至8081端口
location ~ /webstudy/ {
root html;
index index.html index.htm;
# 转发到http://127.0.0.1:8081
proxy_pass http://127.0.0.1:8081;
}
}

※proxy_pass

proxy_pass将请求传递给HTTP服务器,这个也是用的最多的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
proxy_pass http://baidu.com; # 设置被代理服务器的地址
proxy_redirect off; # 修改响应头Location值,off表示直接返回proxy_pass后的值,默认为default(客户端请求的URI),

proxy_connect_timeout 600;# 设置Nginx服务器与后端被代理服务器尝试建立连接的超时时间,默认为60s
proxy_read_timeout 600; # 设置Nginx服务器向后端被代理服务器发出read请求后,等待响应的超时时间,默认为60s
proxy_send_timeout 600; # 设置Nginx服务器向后端被代理服务器发出write请求后,等待响应的超时时间,默认为60s

proxy_buffering: on; # 设置是否开启Proxy Buffer,默认为on
proxy_buffer_size 8k; # 设置Nginx服务器从被代理服务器获取的第一段数据buffer大小,一般和proxy_buffers设置的buffer大小一致,或者更小, 默认为4k或者8k
proxy_buffers 4 32k; # 设置Proxy Buffer的个数和每个Buffer的大小
proxy_busy_buffers_size 64k; # 设置处在Busy状态的Buffer总大小上限,默认为8K或者16K
proxy_temp_file_write_size 64k; #当超过内存允许大小时,存到临时文件
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; # upstream设置被代理服务器集群时,设置组内服务器出现哪些异常时,可以依次轮询到下一个组内服务器处理

proxy_set_header #设置请求头 如:proxy_set_header Host $http_host

fastcgi_pass

fastcgi_pass将请求传递给FastCGI服务器

1
2
3
4
5
6
7
8
9
fastcgi_connect_timeout 3000;
fastcgi_send_timeout 3000;
fastcgi_read_timeout 3000;
fastcgi_buffer_size 200k;
fastcgi_buffers 8 200k;
fastcgi_busy_buffers_size 200k;
fastcgi_max_temp_file_size:1024M; # 设置临时文件大小,默认为1024M
fastcgi_temp_file_write_size 200k;# 配置同时写入临时文件的数据量的大小,合理的配置可以避免磁盘IO负载过高,导致系统性能下降,默认为8KB或16KB
fastcgi_temp_path /dev/shm; # 配置磁盘上的一个文件路径,用于临时存放代理服务器的大体积响应数据,如果proxy buffer 被装满后,响应数据仍然没有被Nginx服务器完全接收,响应数据就被会临时存放在该文件中

uwsgi_pass

uwsgi_pass将请求传递给uwsgi服务器(如python服务)

scgi_pass

scgi_pass将请求传递给SCGI服务器

memcached_pass

memcached_pass将请求传递给memcached服务器