1、环境:
前端Nginx服务器:主机名:server1
IP:172.25.80.1 编译安装nginx1..12
后端tomcat:
Server2--ip:172.25.80.2 主机名:server2
Server3--ip:172.25.80.3 主机名:server3
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_size1024;
gzip on;
gzip_proxied any;
gzip_min_length 1000;
gzip_comp_level 4;
gzip_types text/plain text/cssapplication/json application/x-javascript text/xml application/xmlapplication/xml+rss text/javascript;
gzip_static on;
upstream tomcat { #定义一个tomcat服务器集群,一下是包含的服务器的IP和端口;
server 172.25.80.2:8080;
server 172.25.80.3:8080;
}
server {
listen 80; #定义一个监听的端口
server_name server1.a.com; #定义虚拟主机的名称
location / {
root html/www; #虚拟主机的默认根目录
index index.jspindex.html index.htm; #识别的首页文件类型
}
location ~* \.(jsp|do)$ { #不区分带小写正则匹配,反请求.jsp和dp结尾的请求都会平均分配到后端服务器集群tomcat。
proxy_passhttp://tomcat; #将匹配请求转发至tomcat集群
}
location ~*\.(jpg|png|gif|jgeg|pdf)$ { #不区分大小写匹配括号内定义的文件类型
proxy_passhttp://172.25.80.1:8080; #转发至该服务器
}
}
include html/*.conf; #读取该目录里面的.conf文件
}
3,验证:
1) 访问server1.a.com:
2) 2)访问node5.a.com/index.jsp
注:由于在nginx配置文件中明确定义凡精确匹配.jsp结尾的请求会被转发至tomcat集群,因此该请求不会在nginx本机完成,而是会向服务器集群转发。另外由于在集群中定义了两台服务器,所以会轮流分配用户请求,即实现负载均衡的功能: