nginx服务器功能强大,可以用于反向代理也可以用于负载均衡。
一、反向代理配置
location / {
proxy_pass http://sunpy.com;
}
其中proxy_pass表示当前server配置的代理映射。
效果如下图所示:
配置反向代理的常用指令
proxy_redirect off;
重写后端服务器的location和refresh头。
proxy_set_header Host $host;
重写发送给后端服务器的请求头内容。
proxy_connect_timeout 300;
代理服务器接收请求到连接后端服务器的最长等待时间。
proxy_buffer_size 4k;
后端响应的缓冲区数量和大小。
proxy_buffers 4 32k;
请求后端的缓冲区数量和大小。
proxy_busy_buffers_size 64k;
当代理服务器忙时,缓冲区的最大值。
proxy_send_timeout 300
将超时与请求传输到代理服务器分配。
proxy_read_timeout 300
NGINX等待获取请求响应的时间。
二、负载均衡配置
负载均衡的策略
1、轮询机制(默认)
就是按照时间顺序将请求发送到不同的server。例:使用默认的轮询,nginx将请求分发到不同的server。
upstream sunpy.com {
server 192.168.4.149:8088;
server 192.168.27.13:8088;
}
2、通过ip生成hash值均匀分配到服务器 ip_hash
upstream sunpy.com {
ip_hash;
server 192.168.4.149:8088;
server 192.168.27.13:8088;
}
3、使用最少连接数 least_conn
upstream sunpy.com {
least_conn;
server 192.168.4.149:8088;
server 192.168.27.13:8088;
}
配置example:
upstream myserver {
server 192.168.3.4;
server 192.168.3.5;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://myserver;
#root html;
#index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
参考文章:
http://www.nginx.cn/doc/standard/httpproxy.html