nginx反向代理配置

文章目录

  • 1.反向代理介绍
  • 2. 第一个实例
    • 2.1 实现效果
    • 2.2 准备工作
      • (1) 在linux系统中安装tomcat,使用默认端口8080
      • (2) 修改主机映射
      • (3) 修改nginx配置
      • (4) 最终效果
  • 3. 第二个实例
    • 3.1 实现效果
    • 3.2.准备工作
      • 3.2.1 准备两个tomcat
      • 3.2.2 创建文件夹和测试页面
      • 3.2.3 测试结果
  • 附:location指令说明

1.反向代理介绍

客户端对代理是无感知的,只需将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址
nginx反向代理配置_第1张图片

2. 第一个实例

2.1 实现效果

浏览器访问www.123.com,访问nginx的地址,跳到tomcat
nginx反向代理配置_第2张图片

2.2 准备工作

(1) 在linux系统中安装tomcat,使用默认端口8080

下载tomcat安装包 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.70/bin/apache-tomcat-8.5.70.tar.gz
解压 tar -zxvf apache-tomcat-8.5.70.tar.gz
进入tomcat的bin目录,启动tomcat
cd bin
./startup.sh
对外开放访问的端口
firewall-cmd --add-port=8080/tcp --permanent

(2) 修改主机映射

在hosts文件中加上映射
nginx反向代理配置_第3张图片

PS:域名解析规则:主机先找到hosts文件中的映射,如果没有,就找网络上DNS

(3) 修改nginx配置

nginx反向代理配置_第4张图片

(4) 最终效果

nginx反向代理配置_第5张图片

3. 第二个实例

3.1 实现效果

使用nginx反向代理,根据访问的路径不同跳转到不同端口的服务中
nginx监听端口为9001
访问 http://127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8080
访问 http://127.0.0.1:8001/vod/ 直接跳转到127.0.0.1:8081

3.2.准备工作

3.2.1 准备两个tomcat

(1)修改service.xml配置文件
nginx反向代理配置_第6张图片
nginx反向代理配置_第7张图片
nginx反向代理配置_第8张图片
(2)开放8081端口
firewall-cmd --add-port=8080/tcp --permanent
(3)重启防火墙
service firewalld restart

3.2.2 创建文件夹和测试页面

在webapps下创建edu文件夹,放入html文件
3.3 具体配置
(1)找到nginx配置文件,进行反向代理配置

    server {
        listen       9001;
        server_name  172.29.34.23;

        location ~ /edu {
            proxy_pass http://127.0.0.1:8080;
        }
        location ~ /vod {
            proxy_pass http://127.0.0.1:8081;
        }
    }

(2)开放9001端口
(3)重启nginx

3.2.3 测试结果

nginx反向代理配置_第9张图片
nginx反向代理配置_第10张图片

附:location指令说明

该指令用于匹配URL。
语法如下:

  1. =: 用于不包含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求
  2. ~:用于表示uri包含正则表达式,并且区分大小写
  3. ~* :*用于表示uri包含正则表达式,并且不区分大小写
  4. ^~: 用于不包含正则表达式的uri前,要求nginx服务器找到uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配
    注意:如果uri有正则表达式,必须有 ~* 或 ~

你可能感兴趣的:(nginx,tomcat,服务器)