- 14. 反向代理
- 14.1 单端口反向代理
- 14.1.1 安装 tomcat
- 14.1.2 修改 nginx 配置文件
- 14.2 多端口反向代理
- 14.2.1 实现效果:
- 14.2.2 修改 tomcat 配置文件
- 14.2.3 拷贝一个 webapps 并修改为 webapps
- 14.2.4 修改 nginx配置文件
- 14.2.5 测试
14.1 单端口反向代理反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,
即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,
也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
14.1.1 安装 tomcat实现效果:
打开浏览器,在浏览器地址栏输入 demo.nginx.com(192.168.169.151) ,跳转到 912.168.169.152 的 tomcat 主页
- 将 JDK、Tomcat 安装包上传到服务器中
# 将一下内容添加到 /etc/profile 中 vim /etc/profile #set java environment JAVA_HOME=/root/jdk180 #java安装路径 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH # 使文件生效 source /etc/profile
-
启动 tomcat 服务器
# 进入 tomcat bin 目录,将所有 .sh 文件赋予执行权限 chmod u+x ./*.sh # 启动 tomcat ./startup.sh
-
测试机器直接关闭防火墙
systemctl stop firewalld
# 1.修改本机 hosts 文件
192.168.169.151 demo.nginx.com
# 2.增加一个测试文件 proxy.conf
# 因为在 nginx.conf 文件中有 include 参数,里面配置了引用文件的路径
server {
listen 80;
server_name demo.nginx.com;
location / {
root html;
index index.html index.htm;
proxy_pass http://192.168.169.152:8080;
}
}
- 访问测试
14.2 多端口反向代理 14.2.1 实现效果:浏览器访问:demo.nginx.com
访问 http://demo.nginx.com/webapps/ 直接跳转到 192.168.169.152:8080/webapps/index.html 访问 http://demo.nginx.com/webapps1/ 直接跳转到 192.168.169.152:8081/webapps1/index.html14.2.2 修改 tomcat 配置文件
# 修改 server.xml 文件,增加段新的 service 配置 vim server.xml14.2.3 拷贝一个 webapps 并修改为 webapps
cp webapps webapps1
- 准备测试文件
# tomcat 默认访问 webapps/ROOT/*.(html | jsp) # 或者在浏览器中访问 ROOT 目录下指定目录或者 webapps 目录下指定目录都一样,例如:192.168.169.152:8080/demo/demo.html # 如果指定目录下是 index.(html | jsp) 则也可以默认访问,例如:192.168.169.152:8080/demo(相当于 192.168.169.152:8080/demo/index.html) cd /root/apache-tomcat-7.0.69/webapps mkdir webapps echo "this is webapps" >> webapps/index.html cd /root/apache-tomcat-7.0.69/webapps1 mkdir webapps1 echo "this is webapps1" >> webapps1/index.html14.2.4 修改 nginx配置文件
server {
listen 80;
server_name demo.nginx.com;
location = /webapps {
proxy_pass http://192.168.169.152:8080; # 匹配后跳转实际访问地址为:http://192.168.169.152:8080/webapps/index.html
}
location = /webapps1 {
proxy_pass http://192.168.169.152:8081; # # 匹配后跳转实际访问地址为:http://192.168.169.152:8081/webapps1/index.html
}
}
# 注:如果匹配目录文件相似,则注意 location 匹配规则,如上面 server 中 webapps 和 webapps1 ,如果使用 ~* 匹配,那么 webapps1 就访问不到
# 注:如果在 location 或者 if 中有 “正则” 那么 proxy_pass 中则不能有 uri
# 例如:proxy_pass http://192.168.169.152:8081; 没问题
# proxy_pass http://192.168.169.152:8081/; 会报错
14.2.5 测试
访问:demo.nginx.com/webapps
访问:demo.nginx.com/webapps1



