1、环境:

前端Nginx服务器:主机名:node5.a.com

    IP:192.168.10.205  编译安装nginx 1.6.3

wKioL1VM1zLTNQG6AACdSR7YkGY407.jpg

后端tomcat:

   Server1--ip:192.168.10.209  主机名:node9.a.com

   Server2--ip:192.168.10.210  主机名: node10.a.com

2、Ngginx配置:

user  nginx;

worker_processes  1;

events {

use epoll;

    worker_connections  4096;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile on;

tcp_nopush on;

tcp_nodelay on;

        server_tokens off;

  keepalive_timeout 65;

server_names_hash_max_size 1024;

gzip on;

gzip_proxied any;

gzip_min_length 1000;

gzip_comp_level 4;

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

gzip_static on; 


upstream tomcat {  #定义一个tomcat服务器集群,一下是包含的服务器的IP和端口;

server 192.168.10.209:8080;

server 192.168.10.210:8080;

}    

server {

        listen       80;  #定义一个监听的端口

        server_name  node5.a.com;   #定义虚拟主机的名称

        location / {

            root   html/www;   #虚拟主机的默认根目录

   index index.jsp index.html index.htm;  #识别的首页文件类型

        }

location ~* \.(jsp|do)$  {   #不区分带小写正则匹配,反请求.jsp和dp结尾的请求都会平均分配到后端服务器集群tomcat。

   proxy_pass http://tomcat;  #将匹配请求转发至tomcat集群

}

location ~* \.(jpg|png|gif|jgeg|pdf)$ {  #不区分大小写匹配括号内定义的文件类型

   proxy_pass http://192.168.10.209:8080;  #转发至该服务器

}

include  html/*.conf;  #读取该目录里面的.conf文件

}

3,验证:

1)访问node5.a.com:

wKiom1VM18rS3P_XAAChLmBLl0M836.jpg

2)访问node5.a.com/index.jsp

wKioL1VM2g7Bna42AAHCRhPio4g416.jpg

刷新一下:

wKioL1VM2YvgeW1bAACZobm67ZQ075.jpg

注:由于在nginx配置文件中明确定义凡精确匹配.jsp结尾的请求会被转发至tomcat集群,因此该请求不会在nginx本机完成,而是会向服务器集群转发。另外由于在集群中定义了两台服务器,所以会轮流分配用户请求,即实现负载均衡的功能:

3)访问node5.a.com/1.jpg

wKiom1VM2QyBnqhMAAOS94DHC_Y377.jpg注:在Nginx.cong中定义~* \.(jpg|png|gif|jgeg|pdf)$ 即凡是以jpg|png|gif|jgeg|pdf结尾的请求都转发至192.168.10.209服务器处理,因此需要把1.jpg文件放在192.168.10.209下的/opt/ROOT/1.jpg。