• Nginx:反向代理(案例)


    1、案例一(通过Nginx转发到Tomcat)

    (1)准备

    在docker中安装tomcat和nginx

    (2)具体配置

    在windows系统的host文件进行域名和ip对应关系的配置

    添加内容到host文件:

     测试:因为已经在host文件中配置了IP的对应关系,访问了www.123.com就相当于虚拟机的IP,能够通过www.123.com访问成功就证明host的文件已经生效

    (3)在Nginx中进行反向代理的配置

    servler_name是虚拟机的IP,proxy_pass是要转发到的虚拟机的位置 

    (4)访问[www.123.com:80]进行测试

    浏览器访问的是nginx的地址,但是最终访问到的是tomcat的内容

    如果访问不到可以尝试关闭防火墙,在实际的开发中不能采用关闭防火墙的方式,只能增加开放的端口

    访问的过程如下:

    2、案例二

    (1)先搭建两个tomcat容器

    先利用两个docker镜像分别创建两个不同的tomcat容器,因为是两个tomcat容器运行在一台linux操作系统上,为了避免端口号的冲突,将其中一个容器的tomcat的server.xml配置的端口号进行修改

    [root@aubin ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
    aca9d39cf381        tomcat:8.5.32       "catalina.sh run"   29 minutes ago      Up 29 minutes       0.0.0.0:8081->8080/tcp   elegant_rhodes
    351cbfd44713        tomcat:latest       "catalina.sh run"   30 minutes ago      Up 30 minutes       0.0.0.0:8080->8080/tcp   epic_saha

    一共启动了两个容器,一个是最新版本的镜像创建的,另一个是8.5.32版本的tomcat

    (2)在容器中创建页面并测试

    • 在新版本的tomcat容器中创建页面:
    "index.html" [New File]                                                                                                                                                     0,0-1         All
    <h1>1</h1>
    ~                   

    访问:

     在8版本的tomcat容器中创建页面:

    "index.html" [New File]c
    <h1>8</h1>

    测试:

     (3)配置nginx

     (4)开放对外访问的端口号

     (5)重新加载nginx

    root@977929cadeb4:/etc/nginx/conf.d# nginx -s reload
    2020/10/29 08:19:52 [notice] 38#38: signal process started

    (6)测试

    edu:

    zhai:

    访问:

    访问后:

    浏览器中输入的是80端口,也就是说刚开始先访问的是Nginx,在Nginx内部再根据edu和zhai的不同,分别重定向到不同的tomcat中

    3、总结

    = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。

    ~:用于表示 uri 包含正则表达式,并且区分大小写。

    ~*:用于表示 uri 包含正则表达式,并且不区分大小写。

    ^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。

  • 相关阅读:
    戴文的Linux内核专题:08内核配置(5)
    如何在redhat下安装WineQQ
    如何在redhat下安装办公软件(openoffice)
    fqrouter让安卓手机登陆facebook成为可能
    戴文的Linux内核专题:08内核配置(4)
    如何登录Google美国服务器
    SSM框架搭建(转发)
    垃圾回收器
    数据生成时间表
    js控制邮箱跳转
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13898037.html
Copyright © 2020-2023  润新知