N年前Nginx 负载均衡在金山逍遥网中的应用
2015-08-10 09:06
661 查看
在金山逍遥网中,前端负载均衡服务器采用的是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; } }
相关文章推荐
- Nginx 笔记与总结(10)Nginx 与 PHP 整合
- 01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置
- 01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置
- nginx学习记录
- nginx - 性能优化,突破十万并发
- N年前Nginx负载均衡在新浪播客中的应用
- Nginx入门
- Nginx安装
- Nginx安装
- 为什么选择Nginx
- 为什么选择Nginx
- Nginx 网址
- python + flask + uwsgi + gevent + nginx 环境搭建(非阻塞)
- nginx事件模块指令
- Nginx的Web缓存服务与新浪网的开源NCACHE模块(1)
- 通过lua获取nginx的内置变量,通过这些变量做些逻辑的处理
- nginx 源代码学习笔记
- nginx 开展对RT5350
- ubuntu安装nginx-1.8.0.tar.gz
- nginx 的限制连接模块limit_zone与limit_req_zone