Nginx最简单的反向代理负载均衡配置测试

1. 前置说明:我的 Nginx 版本是 0.7.63, 安装在 /usr/local/nginx 下,默认端口是 80 ,并重写了 Nginx 启动、关闭、重启和重载配置文件的脚本,放在 /usr/local/nginx/sbin/ 下,名为 nginxbak.sh 。

Resin 使用的是 3.1.10 ,安装在 /usr/local/resin-3.1.10 ,端口设置为 8081 。

Tomcat 使用的是 6.0.29 ,安装在 /usr/local/apache-tomcat-6.0.29 下,端口设置为 8080 。

2.新建一个最简单的 web 工程,名叫 NginxTest

Nginx最简单的反向代理负载均衡配置测试

index.jsp 里的内容就是打印一句话,为区分请求访问的是哪个后端服务器,语句里有区别是使用哪个服务器的识别词。

3.       NginxTest 工程上传到虚拟服务器上,并部署到相应的后端服务器上去,它们的配置分别如下:

Tomcat:

Nginx最简单的反向代理负载均衡配置测试

Resin:

  Nginx最简单的反向代理负载均衡配置测试

修改 hosts 文件:

192.168.1.86 nginx.digu.com

分别启动 tomcat(startup.sh) resin(httpd.sh start) ,在浏览器中查看是否可访问:

Nginx最简单的反向代理负载均衡配置测试

Nginx最简单的反向代理负载均衡配置测试

4.       tomcat resin 作为 nginx 的后端服务器,配置一个最简单的服务器集群以演示它负载均衡情况。

Nginx 的配置文件内容如下:

  1. user root  root;   
  2. worker_processes  1;   
  3.     
  4. error_log  logs/error.log;   
  5. #error_log  logs/stdout.log  notice;   
  6. #error_log  logs/stdout.log  info;   
  7.     
  8. pid        logs/nginx.pid;   
  9.     
  10.     
  11. events {   
  12.    use epoll;      
  13.    worker_connections  1024;   
  14. }   
  15.     
  16.     
  17. http {   
  18.     include       mime.types;   
  19.     default_type  application/octet-stream;   
  20.     
  21.     sendfile        on;   
  22.     #tcp_nopush     on;   
  23.     
  24.     #keepalive_timeout  0;   
  25.     keepalive_timeout  65;   
  26.     
  27.     gzip  on;   
  28.     
  29.     upstream nginx.digu.com {   
  30.         server 127.0.0.1:8081;#resin   
  31.        server 127.0.0.1:8080;#tomcat   
  32.         }   
  33.     server {   
  34.         listen       80;   
  35.         server_name  nginx.digu.com;   
  36.     
  37.         charset utf-8;   
  38.     
  39.         location / {   
  40.             proxy_pass http://nginx.digu.com;# 必须要加 http 开头,访问的就是此地址   
  41.             proxy_set_header   Host             $host;   
  42.             proxy_set_header   X-Real-IP        $remote_addr;   
  43.             proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;   
  44.              log_format  nginx.digu.com  '$remote_addr - $remote_user [$time_local] $request '  
  45.                                 '"$status" $body_bytes_sent "$http_referer" '  
  46.                                 '"$http_user_agent" "$http_x_forwarded_for"';   
  47.             access_log  logs/access.log  nginx.digu.com;   
  48.         }   
  49.     
  50.         #error_page  404              /404.html;   
  51.     
  52.         # redirect server error pages to the static page /50x.html   
  53.         #   
  54.         error_page   500 502 503 504  /50x.html;   
  55.         location = /50x.html {   
  56.             root   html;   
  57.         }   
  58.     
  59.         # proxy the PHP scripts to Apache listening on 127.0.0.1:80  
  60.         #   
  61.         #location ~ \.php$ {   
  62.         #    proxy_pass   http://127.0.0.1;   
  63.         #}   
  64.     
  65.         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
  66.         #   
  67.         #location ~ \.php$ {   
  68.         #    root           html;   
  69.         #    fastcgi_pass   127.0.0.1:9000;   
  70.         #    fastcgi_index  index.php;   
  71.         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;   
  72.         #    include        fastcgi_params;   
  73.         #}   
  74.     
  75.         # deny access to .htaccess files, if Apache's document root   
  76.         # concurs with nginx's one   
  77.         #   
  78.         #location ~ /\.ht {   
  79.         #    deny  all;   
  80.         #}   
  81.     }   
  82.     
  83. }