Nginx反向代理示例
2010年5月12日
| 标签: 反向代理
user www www;
worker_processes 10;
error_log /var/logs/nginx_error.log crit;
pid /tmp/pid/nginx.d;
worker_rlimit_nofile 51200;
events{
use epoll;
worker_connections 51200;
}
http{
include mime.types;
default_type application/octet-stream;
server_name_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#允许客戶端请求的最大单个文件字节数
client_max_body_size 300m;
#缓冲区代理缓冲用戶端請求的最大字节数,可以理解为先保存到本地再传给用戶
client_body_buffer_size 128;
#跟后端服务器连接的超时时间,发起握手等候响应超时时间
proxy_connect_timeout 600;
#连接成功后,等候后端服务器响应时间,其实已经进入后端的队列之中等候处理
proxy_read_timeout 600;
#后端服务器数据回传时间,就是在规定时间内后端服务器必须传完所有的数据
proxy_send_timeout 600;
#代理请求缓存区,这个缓存区间会保存用户的头信息以供Nginx进行规则处理,一般只要能保存下头信息即可
proxy_buffer_size 16k;
#同上 告诉Nginx保存单个用户的几个buffer最大用多大空间
proxy_buffers 4 32k;
#如果系统很忙的时候可以申请更大的proxy_buffers官方推荐*2
proxy_busy_buffers_size 64k;
#proxy缓存临时文件大小
proxy_temp_file_write_size 64k;
upstream php_server_pool {
server 192.168.1.10:80 weight=4 max_fails=2 fail_timeout=30s;
server 192.168.1.12:80 weight=4 max_fails=2 fail_timeout=30s;
server 192.168.1.12:80 weight=2 max_fails=2 fail_timeout=30s;
}
upstream message_server_pool {
server 192.168.1.13:3245;
server 192.168.1.14:3245 down;
}
upstream bbs_server_pool {
server 192.168.1.15:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.16:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.17:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.18:80 weight=1 max_fails=2 fail_timeout=30s;
}
#第一个虚拟主机,反向代理php_server_pool这组服务器
server
{
listen 80;
server_name www.yourdomain.com;
location /
{
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://php_server_pool;
proxy_set_header Host www.yourdomain.com;
proxy_set_header X-Forwarder-For $remote_addr;
}
access_log /var/logs/www.yourdomain.com_access.log;
}
#第二个虚拟主机
server
{
listen 80;
server_name www1.yourdomain.com;
#访问http://www1.yourdomain.com/message/***地址,反向代理message_server_pool这组服务器
location /message/
{
proxy_pass http://message_server_pool;
proxy_set_header Host $host;
}
#访问除了/message/之外的http://www1.yourdomain.com/***地址,反向代理php_server_pool这组服务器
location /
{
proxy_pass http://php_server_pool;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote addr;
}
access_log /var/logs/message.yourdomain.com_access.log
}
#第三个虚拟主机
server{
listen 80;
server_name bbs.yourdomain.com *.bbs.yourdomain.com;
location /
{
proxy_pass http://bbs_server_pool;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
access_log off;
}
}
相关文章
- Nginx的编译选项 (0.500)
- nginx+PHP CGI惊爆0day漏洞 (0.500)
- [转]nginx优化 突破十万并发 (0.500)
- Nginx 反盗链设置 (0.500)
发表评论
| Trackback
