Nginx负载均衡与反向代理的配置实例

来源:互联网 发布:打印机wsd端口是什么 编辑:程序博客网 时间:2024/06/07 07:16
user  www www;worker_processes 10;error_log  /data1/logs/nginx_error.log  crit;pid        /usr/local/webserver/nginx/nginx.pid;worker_rlimit_nofile 51200;events { use epoll; worker_connections 51200;}http { include       mime.types; default_type  application/octet-stream; #charset  utf-8;      server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k;      sendfile on; #tcp_nopush     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; #limit_zone  crawler  $binary_remote_addr  10m; #允许客户端请求的最大单个文件字节数 client_max_body_size     300m; #缓冲区代理缓冲用户端请求的最大字节数,可以理解为先保存到本地再传给用户 client_body_buffer_size  128k;               #跟后端服务器连接的超时时间_发起握手等候响应超时时间 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.11: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-Forwarded-For  $remote_addr;   }   access_log  /data1/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  /data1/logs/message.yourdomain.com_access.log; } #第三个虚拟主机 server{   listen80;   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; }}

0 0