案例一
- 预先安装nginx(还没安装的查看这里:Linux安装Nginx)监听端口号80
- 安装tomcat,端口号8080
- 实现打开80端口地址自动跳转到8080的tomcat主页,如下图
安装tomcat
下载tomcat安装包,上传到Linux服务器/opt路径,也可以从网盘直接下载:
链接:https://pan.baidu.com/s/1_GbsxxCXldA-SqMpdPr-1Q
提取码:dot1
解压tomcat
tar -zxvf apache-tomcat-7.0.70.tar.gz -C /usr/local/
启动tomcat
cd /usr/local/apache-tomcat-7.0.70/bin/
./startup.sh
配置Nginx反向代理
打开配置文件
cd /usr/local/nginx/conf
vim nginx.conf
1:把server_name由localhost改成本机IP
2:添加proxy_pass,表示跳转到http://192.168.25.131:8080
测试
浏览器输入 http://192.168.25.131,原本应该是要打开nginx首页的。但是此时打开了tomcat首页,表示我们反向代理配置成功。
案例二
- 打开服务器9001端口,根据URL后面的地址,来跳转到不同的目标页面
- http://192.168.25.131:9001/first ==>> 跳转到 tomcat 8080端口实例
- http://192.168.25.131:9001/second ==>> 跳转到 tomcat 8081端口实例
安装第二个tomcat实例
把之前安装的tomcat文件夹,再复制一份
cd /usr/local/
#文件夹改名
mv apache-tomcat-7.0.70 tomcat-8080
#再复制一份实例
cp -r tomcat-8080 tomcat-8081
cd tomcat-8081/conf/
vim server.xml
修改以下地方:
Server port改成8015
Connector port 改成 8081
另一个Connector port 改成 8019
准备测试页面
进入tomcat8080的webapps目录下,创建first文件夹,并创建测试页面a.html,页面内容如下
<h>8080!!!!</h>
同理,也在tomcat8081创建second文件夹,创建测试页面a.html
<h>8081!!!!</h>
最后分别启动2个tomcat实例,并分别浏览地址验证是否正常
http://192.168.25.131:8080/first/a.html
http://192.168.25.131:8081/second/a.html
配置Nginx反向代理
编辑nginx.conf,加上如下server块:
server {
listen 9001;
server_name 192.168.25.131;
location ~ /first/ {
proxy_pass http://192.168.25.131:8080;
}
location ~ /second/ {
proxy_pass http://192.168.25.131:8081;
}
}
测试
浏览器输入 http://192.168.25.131:9001/first/a.html
浏览器输入 http://192.168.25.131:9001/second/a.html
location 指令说明
location [ = | ~ | ~* | ^~] uri {
}
=:用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
成功,就停止继续向下搜索并立即处理该请求
~:用于表示 uri 包含正则表达式,并且区分大小写
~*:用于表示 uri 包含正则表达式,并且不区分大小写
^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识