1. 反向代理
在这之前,我们先了解一下 nginx.conf的相关配置:我们需要实现的功能如下:
- 在我们的windows浏览器访问 www.123.com 跳转到 Tomcat的首页
- 访问 http://你的ip:9001/edu/a.html 和 http://你的ip:9001/vod/a.html 分别访问不同的Tomcat服务器下的a.html文件
实现第一个功能,我们需要先配置下nginx的配置文件 nginx.conf,假设你已经安装好了Tomcat7,端口为8080
server {
listen 80;
server_name 192.168.119.139;
location / {
root html;
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
补充:
firewall-cmd --list-all # 查看所有开放的端口
firewall-cmd --reload #重启防火墙
firewall-cmd --add-port=8001/tcp --permanent #添加端口号
./sbin/nginx -s reload # 更新配置文件,重载
解释: 代理监听 192.168.119.139的80端口,当我们访问192.168.119.139:80时,代理服务器会转发到http://127.0.0.1:8080,从而实现访问,我们只需要在windows的hosts文件中设置 相关的 映射 192.168.119.139 www.123.com
就能实现效果。
实现第二个功能,我们需要启动两个Tomcat服务器,并且在两个服务器的 Tomcat的webapps目录下分别新建edu目录和vod目录,每个目录下新建a.html文件,然后重启Tomcat。
接着,我们继续设置nginx配置文件
server {
listen 9001;
server_name 192.168.119.139;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8001;
}
}
当访问 http://192.168.119.139:9001/edu/a.html 的时候,会触发正则表达式,也就是会被拦截,然后转发到 http://127.0.0.1:8080/edu/a.html,也就是 edu前面的一截会被替换成代理的内容
2. 负载均衡
下面完成这么一个功能,我们把通过访问代理服务器,代理服务器把这个请求轮流分给两个Tomcat服务器处理。同样的,我们分别在两个Tomcat服务器下的webapps文件夹中建立edu/a.html文件,然后启动服务器。
修改nginx 的配置文件,如下所示:
#在http{}里面添加自定义负载服务器
upstream myserver{
server 192.168.119.139:8080;
server 192.168.119.139:8001;
}
server {
listen 80;
server_name 192.168.119.139;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
}
也就是说每当我们访问 192.168.119.139:80 代理服务器都会帮我们把请求分发给 proxy_pass http://myserver; 也就是上面定义的那两个处理请求的服务器。nginx默认是轮询,也就是轮番访问,可以自己设置权重。如下所示:
upstream myserver{
server 192.168.119.139:8080 weight=5;
server 192.168.119.139:8001 weight=10;
}
还可以设置 ip_hash,对IP进行hash,这样有一个好处,每个IP固定访问一个服务器,有效解决分布式session的问题,也就是单点登录的问题(还可以使用redis等解决):
upstream myserver{
ip_hash;
server 192.168.119.139:8080 weight=5;
server 192.168.119.139:8001 weight=10;
}
最后,还有一种fair机制,根据响应的时间来进行分配,也就是谁先响应,先分配给谁
upstream myserver{
fair;
server 192.168.119.139:8080 weight=5;
server 192.168.119.139:8001 weight=10;
}
3. 动静分离
转到这里 传送门