• nginx反向代理(2)


    1、Nginx 配置实例1:反向代理

    1.1、实现效果

    (1)、打开浏览器,地址栏输入 www.123.com,跳转到 Linux 系统 tomcat 主页面中。

    1.2、准备工作

    1.2.1、在 Linux 系统安装 tomcat,使用默认端口 8080

    (1)、将下载的 jdk 上传到 /usr/local 下,然后解压

     tar -zxvf jdk-8u212-linux-x64.tar.gz
    

    解压完成后我们会看到 /usr/local 目录下有一个 jdk 1.8.0_212 的目录

    (2)、配置环境变量

    vim /etc/profile
    

    在文件末尾添加如下内容:

    # jdk环境变量配置
    JAVA_HOME=/usr/jdk/jdk1.8.0_212
    PATH=$PATH:$JAVA_HOME/bin
    export JAVA_HOME PATH
    

    注:export JAVA_HOME 后接 jdk1.8 的安装路径。

    (3)、使环境变量生效

    source /etc/profile
    

    (4)、验证jdk1.8是否安装成功

    java -version
    

    如下所示,表示jdk1.8安装成功:

    [root@localhost local]# java -version
    java version "1.8.0_212"
    Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
    Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
    

    (5)、启动 tomcat ,进入 tomcat 解压 目录下的 */bin/ (/root/usr/ll/apache-tomcat-9.0.20/bin/)目录下,输入如下命令启动:

     ./startup.sh
    

    进入日志文件目录下*/log/ (/root/usr/ll/apache-tomcat-9.0.20/log/)查看启动日志情况,输入如下命令:

    tail -f catalina.out 
    

    在主机浏览器输入IP和端口号查看,是否可访问。

    1.2.2、在 Linux 系统安装 tomcat,使用默认端口 8080

    (1)、linux 安装了tomcat 启动后无法访问解决办法

    、首先查下看 Linux是否开放了端口

    netstat -ntpl
    
    netstat -nupl (UDP类型的端口)
    
    netstat -ntpl (TCP类型的端口)
    
    a 表示所有
    n 表示不查询dns
    t 表示tcp协议
    u 表示udp协议
    p 表示查询占用的程序
    l 表示查询正在监听的程序
    

    若出现:-bash: netstat: 未找到命令,则先安装 net-tools

     yum -y install net-tools
    

    、输入命令查看:

    [root@localhost logs]# netstat -ntpl
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      12143/nginx: master 
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6133/sshd           
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6460/master         
    tcp6       0      0 :::8009                 :::*                    LISTEN      15992/java          
    tcp6       0      0 :::8080                 :::*                    LISTEN      15992/java          
    tcp6       0      0 :::22                   :::*                    LISTEN      6133/sshd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      6460/master         
    tcp6       0      0 127.0.0.1:8005  
    

    (2)、端口号是不是防火墙被拦截了

      防火墙负责端口是否对外开放,如果在配置中设置了不拦截我们就可以通过该端口访问服务器;如果不设置该端口对外开放,我们就不能通过该端口访问服务器

    、检查防火墙是否在运行地的状态

    systemctl status firewalld
    
    [root@localhost bin]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since 日 2019-10-06 09:20:12 CST; 5h 54min ago
         Docs: man:firewalld(1)
     Main PID: 5600 (firewalld)
       CGroup: /system.slice/firewalld.service
               └─5600 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    

    上面标识防火墙正在运行。

    如果没有开启防火墙:
    开启防火墙:

    systemctl start firewalld
    

    设置防火墙开机启动:

    systemctl enable firewalld
    

    (3)、端口开放设置
    1)、查看放火墙对外开放的端口:

    firewall-cmd --zone=public --list-ports
    
    [root@localhost bin]# firewall-cmd --zone=public --list-ports
    80/tcp
    

    上面便是对防火墙开放端口列表。

    2)、开启需要使用的端口

    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    

    其中--permanent 的作用是使设置永久生效,不加的话机器重启之后失效

    3)、重新载入一下防火墙设置,使设置生效

    firewall-cmd --reload
    

    4)、可通过如下命令查看是否生效

    firewall-cmd --zone=public --query-port=8080/tcp
    

    (4)、端口限制

    #要限制的端口
    firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    #从新加载防火墙,使设置生效
    firewall-cmd --reload
    #再去查看系统所有开放的端口,限制的端口是否还存在
    firewall-cmd --zone=public --list-ports
    

    (5)、批量开放或限制端口
    1)、批量开放端口,如从100到500这之间的端口全部要打开

    firewall-cmd --zone=public --add-port=100-500/tcp --permanent
    

    2)、批量限制端口,如从600到800这之间的端口全部限制

    firewall-cmd --zone=public --remove-port=600-800/tcp --permanent
    

    3)、重新载入防火墙设置

    firewall-cmd --reload
    

    1.3、访问过程分析

     
     

    1.4、具体配置

    1.4.1、在windows 系统的 host 文件中进行域名和 IP 对应关系的配置

    位置:C:WindowsSystem32driversetchosts

    添加内容:

    192.168.92.128  www.123.com
    
    1.4.2、在 nginx 中进行请求转发的配置(反向代理配置)

    在配置文件中配置如下:


     
     

    1.5、测试

     
     

    2、Nginx 配置实例2:反向代理

    实现效果:

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

    2.1、准备工作
    (1)准备两个 tomcat 端口分别为 8080、8081

    ①、在 tomcat 解压文件或压缩文件所在目录下分别创建 tomcat8080、tomcat8081 文件夹。

    [root@localhost ll]# ls
    apache-tomcat-9.0.20  apache-tomcat-9.0.20.tar.gz  nginx-1.16.1  nginx-1.16.1.tar.gz  tomcat8080  tomcat8081
    
    

    ②、将解压的 apache-tomcat-9.0.20 分别复制一份到 tomcat8080 和 tomcat8081 中;或重新解压到 tomcat8080 和 tomcat8081 中

    cp -r apache-tomcat-9.0.20 tomcat8080  
    cp -r apache-tomcat-9.0.20 tomcat8081
    

    ③、修改 tomcat8081 中 tomcat 配置文件的 端口

     22 <Server port="8005" shutdown="SHUTDOWN">
     23   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
     24   <!-- Security listener. Documentation at /docs/config/listeners.html
     25   <Listener className="org.apache.catalina.security.SecurityListener" />
    
     68     -->
     69     <Connector port="8081" protocol="HTTP/1.1"
     70                connectionTimeout="20000"
     71                redirectPort="8443" />
     72     <!-- A "Connector" using the shared thread pool-->
     73     <!--
    
    115     <!-- Define an AJP 1.3 Connector on port 8009 -->
    116     <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />
    117 
    118 
    119     <!-- An Engine represents the entry point (within Catalina) that processes
    120          every request.  The Engine implementation for Tomcat stand alone
    
    (2)添加对应的显示

    分别在tomcat8080、tomcat8081中的 Tmocat 的 webapps 文件下创建 edu和vod文件,并在文件夹里添加 a.html 文件。内容自己定义,可区分即可;

    2.2、nginx 反向代理配置

    进入nginx 的配置文件 nginx.conf 所在的位置,进行配置,配置如下:

     83     # another virtual host using mix of IP-, name-, and port-based configuration
     84     #
     85     server {
     86         listen       9001;
     87     #    listen       somename:8080;
     88         server_name  192.168.92.128;
     89 
     90         location ~ /edu/ {
     91                 proxy_pass http://127.0.0.1:8080;
     92     #        root   html;
     93     #        index  index.html index.htm;
     94         }
     95         location ~ /vod/ {
     96                 proxy_pass http://127.0.0.1:8081;
     97         }
     98     }
     99     
    
    2.3、开放对应的端口号,并测试
  • 相关阅读:
    .net导出Excel几种方式比较
    各种loading加载中gif图标
    鼠标右键Table的td弹出多级菜单,双击td编辑
    解决远程连接超过最大数
    JQuery1.72中二个Bug,formhtml()方法与clone()方法的二个Bug进行重写
    Wijmo 2017路线图
    Wijmo 2016 V3发布
    ComponentOne 2016 V3 发布
    Angular2正式版发布,Wijmo抢先支持
    最好的Angular2表格控件
  • 原文地址:https://www.cnblogs.com/hwllovelq/p/12132446.html
Copyright © 2020-2023  润新知