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
index.jsp 里的内容就是打印一句话,为区分请求访问的是哪个后端服务器,语句里有区别是使用哪个服务器的识别词。
3. 将 NginxTest 工程上传到虚拟服务器上,并部署到相应的后端服务器上去,它们的配置分别如下:
Tomcat:
Resin:
修改 hosts 文件:
192.168.1.86 nginx.digu.com
分别启动 tomcat(startup.sh) 和 resin(httpd.sh start) ,在浏览器中查看是否可访问:
4. 将 tomcat 、 resin 作为 nginx 的后端服务器,配置一个最简单的服务器集群以演示它负载均衡情况。
Nginx 的配置文件内容如下:
- user root root;
- worker_processes 1;
- error_log logs/error.log;
- #error_log logs/stdout.log notice;
- #error_log logs/stdout.log info;
- pid logs/nginx.pid;
- events {
- use epoll;
- worker_connections 1024;
- }
- http {
- include mime.types;
- default_type application/octet-stream;
- sendfile on;
- #tcp_nopush on;
- #keepalive_timeout 0;
- keepalive_timeout 65;
- gzip on;
- upstream nginx.digu.com {
- server 127.0.0.1:8081;#resin
- server 127.0.0.1:8080;#tomcat
- }
- server {
- listen 80;
- server_name nginx.digu.com;
- charset utf-8;
- location / {
- proxy_pass http://nginx.digu.com;# 必须要加 http 开头,访问的就是此地址
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- log_format nginx.digu.com '$remote_addr - $remote_user [$time_local] $request '
- '"$status" $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
- access_log logs/access.log nginx.digu.com;
- }
- #error_page 404 /404.html;
- # redirect server error pages to the static page /50x.html
- #
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root html;
- }
- # proxy the PHP scripts to Apache listening on 127.0.0.1:80
- #
- #location ~ \.php$ {
- # proxy_pass http://127.0.0.1;
- #}
- # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
- #
- #location ~ \.php$ {
- # root html;
- # fastcgi_pass 127.0.0.1:9000;
- # fastcgi_index index.php;
- # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
- # include fastcgi_params;
- #}
- # deny access to .htaccess files, if Apache's document root
- # concurs with nginx's one
- #
- #location ~ /\.ht {
- # deny all;
- #}
- }
- }