N年前Nginx 負載均衡在金山逍遙網中的應用

在金山逍遙網中,前端負載均衡服務器採用的是Nginx,兩臺Nginx服務器爲一組,承擔多種類型的負載均衡服務,兩臺負載均衡服務器均處於活動狀態,各自綁定一個公網虛擬IP,作爲負載均衡服務器,當其中一個發生故障時,另一臺接管發生故障服務器的虛擬IP。配置nginx.conf代碼如下

代碼:

user www www;
work_processes 8;
error_log /data1/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;

#specifies the value for maximum file descriptors that can be opened by this process worker_rlimit_nofile 51200

events
{
    use epoll;
    worker_connections 51200;
}

http
{
     include    mine.types;
     default_type  application/octet-strem;

     #charset utf-8

     server_names_hash_bucket_size 128k;
     client_header_buffer_size  32k;
     large_client_header_buffers 4 32k;

     sendfile on;
     #tcp_nopush on;

     keepalive_timeout 30;
     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 anti_attack $binary_remote_addr 10m;

    #允許客戶端請求的最大單文件字節數
    client_max_body_size 300m;

    #緩衝區代理緩衝用戶端的最大字節數 可以理解爲現存到本地再傳給用戶
    client_body_size 128k;

    #跟後端服務器連接的超時時間_發起握手等候響應超時時間
    proxy_connect_time 600;

    #連接成功後_等待後端服務器響應時間_其實已經進入後端的派對等候處理
    proxy_read_timeout  600;

    #後端回傳時間_規定時間內傳完所有數據
    proxy_send_timeout  600;

    #代理請求緩存區,保存用戶的頭信息以供Nginx進行規則處理
    proxy_buffer_size  16k;
    proxy_buffers   4  32k;
    proxy_busy_buffers_size  64k;
    proxy_temp_file_write_size 64k;

    #緩存
    proxy_temp_path /data2/proxy_temp_path;
    proxy_cache_path  /data2/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=5;

    upstream myserver_pool{
        server xx.xx.xx.1:80 weight=1 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.2:80 weight=1 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.3:80 weight=1 max_fails=2 fail_timeout=30s;
    }

    upstream php_server_pool{
        server xx.xx.xx.4:80 weight=1 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.5:80 weight=1 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.6:80 weight=1 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.7:80 weight=1 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.8:80 weight=1 max_fails=2 fail_timeout=30s;
    }

    upstream bbs_server_pool{
        ip=hash;
        server xx.xx.xx.9:80 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.10:80 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.11:80 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.12:80 max_fails=2 fail_timeout=30s;
    }

    upstream cms_server_pool{
        server xx.xx.xx.13:80 weight=1 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.14:80 weight=1 max_fails=2 fail_timeout=30s;
    }

    upstream pic_server_pool{
        server xx.xx.xx.15:80 weight=1 max_fails=2 fail_timeout=30s;
        server xx.xx.xx.16:80 weight=1 max_fails=2 fail_timeout=30s;
    }

    upstream xoyohimsg_server_pool{
        server xx.xx.xx.17:3245;
        server xx.xx.xx.18:3245 down;
    }

    #xoyo.com域名調轉到www.xoyo.com

    server
    {
        listen 80;
        server_name xiyo.com;

        rewrite ^/(.*) http:xoyo.com/ permanent;

        acces_log /data1/logs/xoyo.com_access.log;
    }

    #用戶中心HTTP/SSL加密瀏覽
    server
    {
        listen 443;
        server_name my.xoyo.com

        ssl on;
        ssl_cretificate  my.xoyo.com.crt;
        ssl_cretificate_key my.xoyo.com.key;

    location /
    {
        proxy_pass http://php_server_pool;
        proxy_set_header Host my.xoyo.com;
        proxy_set_header X-Forward-For $remote_addr;
    }
    access_log /data1/logs/my.xoyo.com_access.log;

    }

    #圖片服務器,不同的路徑訪問後端不同的服務器
    server
    {
        listen 80;
        server_name pic.xoyo.com;

        location /cms/
        {
        proxy_pass http://cms_server_pool;
        proxy_set_header Host pic.xoyo.com;
        proxy_set_header X-Forward-For $remote_addr;
        }
        access_log /data1/logs/pic.xoyo.com_access.log;
    }

    #音頻電臺文件下載,進行簡單防盜鏈
    #limit_zone media %binary_remote_addr 10m;
    server
    {
        listen 80;
        server_name media.xoyo.com;

        location /
        {
        proxy_pass http://cms_server_pool;
        proxy_set_header Host $host;
        proxy_set_header X-Forward-For $remote_addr;

        valid_reference nine blocked www.xoyo.com *.xoyo.com  www.kingsoft.com  *.kingsoft.com  www.kingsoft.cn  *.kingsoft.cn;
        if ($invalid_referers){
            rewrite ^/ http://www.xoyo.com;
        }
        }
        access_log /data1/logs/media.xoyo.com_access.log;
    }
    #“逍遙有聊”WebIM產品的負載均衡,反向代理兩種HTTP服務器
    server
    {
        listen  80;
        server_name hi.xoyo.com;
    #反向代理一款定製開發的高性能消息隊列HTTP服務器
    location /recmessage.xoyo
    {
        proxy_pass http://xoyohimsg_server_pool;
        proxy_set_header Host $host;
    }

    location /
    {
        proxy_pass http://php_server_pool;
        proxy_set_header Host $host;
        proxy_set_header X-Forward-For $remote_addr;

    }

    access_log /data1/logs/hi.xoyo.com_access.log;

    #論壇負載均衡並對圖片、Flash、JavaScript、CSS、靜態HTML進行Web緩存
    server {
    listen   80;
    server_name bbs.xoyo.com *.bbs.xoyo.com bbs.xoyo.kingsoft.com;

    location /
    {
        proxy_pass http://bbs_server_pool;
        proxy_set_header Host $host;
        proxy_set_header X-Forward-For $remote_addr;

    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|html|shtml)$
    {
        proxy_cache  cache_one;
        proxy_cache_valid  200 10m;
        proxy_cache_valid  304 1m;
        proxy_cache_valid  301 302 ih;
        proxy_cache_valid  any 1m;
        proxy_cache_key $host$uri$is_args$args;
        proxy_set_header  Host  $host;
        proxy_set_header X-Forward-For $remote_addr;
        proxy_pass http://bbs_server_pool;

    }
    log_format bbs '$remote_addr $host  $remote_user [$time_local] "$request"'
    '"$status" $body_bytes_sent "$http_referer"'
    '"$http_user_agent"   "$http_x_forwarded_for"';
access_log /data1/logs/bbs.xoyo.com_access.log bbs;

}
    #論壇附件反向代理,限制下載速度爲256k/秒
    server{
        listen 80;
        server_name  att03.bbs.xoyo.com  att02.bbs.xoyo.com  att01.bbs.xoyo.com;

    location /{
        #限制下載速度爲256k/s
        limit_rate 256k;
        proxy_pass http://xx.xx.xx.19;
        proxy_set_header Host $host;
        proxy_set_header X-Forward-For $remote_addr;
    }
    access_log off;
}

#逍遙江湖SNS社區,管理後臺定位到一臺服務器上,並對圖片,flash,javascript,CSS進行web緩存

    server
    {
        listen  80;
        server_name  hu.xoyo.com  *.hu.xoyo.com;

        location /
        {

        proxy_pass http://php_server_pool;
        proxy_set_header Host $host;
        proxy_set_header X-Forward-For $remote_addr;
        }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
    {
        proxy_cache  cache_one;
        proxy_cache_valid  200 10m;
        proxy_cache_valid  304 1m;
        proxy_cache_valid  301 302 ih;
        proxy_cache_valid  any 1m;
        proxy_cache_key $host$uri$is_args$args;
        proxy_set_header  Host  $host;
        proxy_set_header X-Forward-For $remote_addr;
        proxy_pass http://php_server_pool;
    }

    location ~ ^/admincp.php
    {
        proxy_set_header  Host  $host;
        proxy_set_header X-Forward-For $remote_addr;
        proxy_pass http://xx.xx.xx.4;

    }
    access_log /data1/logs/hu.xoyo.com_accsee.log;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章