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; #} } }