Nginx  实现简单的负载均衡

 

架构

      

 Nginx  实现简单的负载均衡_nginx

 Nginx负载均衡器:192.168.14.128

WEB服务器:192.168.14.23192.168.14.24 (采用nfs 文件存放站点,或者也可以各自存放通过sync之类同步)

Mysql: 后端,可以通过主从之类分担

 

安装nginx:

前置:

 

  1. yum -y install pcre pcre-devel openssl-devel zlib-devel gcc gcc-c++ 
  2.  
  3. wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-8.10.tar.gz 
  4.  
  5. tar zxvf pcre-8.10.tar.gz 
  6.  
  7. cd pcre-8.10/ 
  8.  
  9. ./configure 
  10.  
  11. make && make install 
  12.  
  13. cd ../ 
  14.  
  15. tar zxvf nginx-1.2.6.tar.gz 
  16.  
  17. cd nginx-1.2.6/ 
  18.  
  19. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 
  20.  
  21. make && make install 
  22.  
  23. cd ../ 

备份初始配置

 

  1. mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak 

创建配置文件

 

  1. vim /usr/local/nginx/conf/nginx.conf 

 

  1. user  www www; 
  2.  
  3. worker_processes 8; 
  4.  
  5.   
  6.  
  7. error_log  /usr/local/nginx/logs/nginx_error.log  crit; 
  8.  
  9. pid        /usr/local/nginx/logs/nginx.pid; 
  10.  
  11.   
  12.  
  13. worker_rlimit_nofile 51200; 
  14.  
  15. events 
  16.  
  17.  
  18.     use epoll; 
  19.  
  20.     worker_connections 51200; 
  21.  
  22.  
  23. http 
  24.  
  25.  
  26.     include       mime.types; 
  27.  
  28.     default_type  application/octet-stream; 
  29.  
  30.     #charset  gb2312; 
  31.  
  32.     
  33.  
  34.     server_names_hash_bucket_size 128; 
  35.  
  36.     client_header_buffer_size 32k; 
  37.  
  38.     large_client_header_buffers 4 32k; 
  39.  
  40.      
  41.  
  42.     sendfile on; 
  43.  
  44.     tcp_nopush     on; 
  45.  
  46.     keepalive_timeout 60; 
  47.  
  48.   
  49.  
  50.     tcp_nodelay on; 
  51.  
  52. #gzip on; 
  53.  
  54.     #gzip_min_length  1k; 
  55.  
  56.     #gzip_buffers     4 16k; 
  57.  
  58.     #gzip_http_version 1.0; 
  59.  
  60.     #gzip_comp_level 2; 
  61.  
  62.     #gzip_types       text/plain application/x-javascript text/css application/xml; 
  63.  
  64.     #gzip_vary on; 
  65.  
  66. upstream  www.test.com  { 
  67.  
  68.         server   192.168.14.24:80; 
  69.  
  70.         server   192.168.14.23:80; 
  71.  
  72.     } 
  73.  
  74.   
  75.  
  76.   
  77.  
  78.  #定义日志格式 
  79.  
  80.         log_format  access  '$remote_addr - $remote_user [$time_local] $request ' 
  81.  
  82.                    '"$status" $body_bytes_sent "$http_referer" ' 
  83.  
  84.                    '"$http_user_agent" "$http_x_forwarded_for"'; 
  85.  
  86. server 
  87.  
  88.     { 
  89.  
  90.         listen  80; 
  91.  
  92.         server_name localhost; 
  93.  
  94.   
  95.  
  96.         #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP 
  97.  
  98.         proxy_set_header   X-Forwarded-For  $remote_addr; 
  99.  
  100.   
  101.  
  102.   location / { 
  103.  
  104.         root /data0/data_www/www.test.com; 
  105.  
  106.         index index.html index.htm index.php; 
  107.  
  108.         proxy_set_header Host $host;  
  109.  
  110.         proxy_set_header X-Real-IP $remote_addr;  
  111.  
  112.         proxy_pass http://www.test.com; 
  113.  
  114.         proxy_redirect off; 
  115.  
  116.         access_log  /usr/local/nginx/logs/access.log  access; 
  117.  
  118.    } 
  119.  
  120.  

 访问www.test.com

 

测试是否生效 ,在23 24两台上分别建立相同文件index.html 内容分别为192.168.14.23

192.168.30.24

 

访问相同域名 得到不同内容

 

 Nginx  实现简单的负载均衡_负载均衡_02