nginx 的反向代理 负载均衡 动静分离 重写
反向代理:客户端访问代理服务器,代理服务器代理web站点响应用户请求
一台nginx 一台tomcat
实现nginx反向代理tomcat
(用户访问nginx服务器,实际访问到的是tomcat页面)
开启nginx服务
vim /usr/local/nginx/conf/nginx.conf
修改配置文件,代理tomcat的地址192.168.38.5:8080
nginx -s reload
打开浏览器输入192.168.38.3
反向代理二
根据访问的不同路径 nginx 反向代理到不同的服务器上
http://192.168.38.3/edu 直接跳转到 192.168.38.5:8080/edu
http://192.168.38.3/vod 直接跳转到 192.168.38.6:8080/vod
两台tomcat 服务器 地址分别为 192.168.10.45 192.168.10.47 并tomcat 都已启动
准备edu 和aaa测试页面
192.168.38.5主机
cd /usr/local/tomcat/webapps/
mkdir edu
echo "edu.com" > edu/index.html
192.168.38.6主机
cd /usr/local/tomcat/webapps/
mkdir aaa
echo "8888" > aaa/index.html
修改nginx 主机 配置文件
vim /usr/local/nginx/conf/nginx.conf
nginx -s reload
网页测试
192.168.38.3/edu/
192.168.38.3/aaa/
负载均衡:nginx作为调度服务器,反向代理多台web服务器响应用户请求
策略: 轮询 权重 ip_hash fair(按照后端相应时间)
在上面实验的基础上做
将 192.168.38.6 中 aaa 文件夹 更名为 edu
cd /usr/local/tomcat/webapps
mv aaa edu
修改nginx 服务器配置文件
vim /usr/local/nginx/conf/nginx.conf
nginx -s reload
浏览器测试,刷新内容交替出现
动静分离
将动态请求和静态请求分开
两种方案:
纯粹的把静态资源独立成单独的域名 放到一台服务器上 目前主流的方法
另一种是动态跟静态资文件混合在一起发布 通过 nginx 来分开
准备静态资源
nginx 服务器上
cd /
mkdir /data
cd /data
mkdir www image
echo "<h1>static web test</h1>" > www/test.html
cd image //上传两张图片并改名
动态资源使用 tomcat 服务器 默认 无需改动
修改 nginx 配置文件
nginx -s reload
网页测试
http://192.168.38.3/image/1.png
http://192.168.38.3/image/2.png
http://192.168.38.3/index.jsp
重写
rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向。更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求
修改配置文件
重读 nginx -s reload
本地磁盘地址C:\Windows\System32\drivers\etc\hosts
域名解析
浏览器访问www.aax.com 会转到 www.liangzhi.cn