Nginx04-Nginx配置实例-反向代理

  • 1、反向代理实例一
  • 1.1 准备阶段
  • 1.1.1 在 Linux 系统安装Tomcat,使用默认端口8080
  • 1.1.2 开放 Tomcat 的默认 8080 端口,并启动 Tomcat
  • 1.1.3 在本机浏览器通过 虚拟机ip:8080 访问,得到下面图片
  • 1.2 访问过程分析以及配置文件配置
  • 1.2.1 访问过程分析
  • 1.2.2 window系统的host文件配置域名和ip对应关系的配置
  • 1.2.3 Nginx配置文件进行请求转发的配置(反向代理配置)
  • 1.3 最终效果
  • 2、反向代理实例二
  • 2.1 准备阶段
  • 2.1.1 准备两个tomcat,一个8080端口,一个8081端口
  • 2.1.2 准备测试页面
  • 2.2 Nginx配置文件的配置
  • 2.2.1 首先进入配置文件所在目录
  • 2.2.2 修改配置文件(新增一个server)
  • 2.2.3 重新加载Nginx服务
  • 2.3 最终效果
  • 3 、location指令说明
  • 3.1、= uri
  • 3.2、~ uri
  • 3.3、~* uri
  • 3.4、~~ uri
  • 3.5、注意


1、反向代理实例一

实现效果:使用 nginx 反向代理,访问 www.123.com 直接跳转到 虚拟机ip:8080

1.1 准备阶段

1.1.1 在 Linux 系统安装Tomcat,使用默认端口8080

  • 将 Tomcat 安装包放置到 /usr/src目录下
  • 解压压缩包

1.1.2 开放 Tomcat 的默认 8080 端口,并启动 Tomcat

  • 开放 Tomcat 的8080端口
    CentOS:
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd –reload

Ubuntu:

ufw allow 8080/tcp
ufw reload

nginx 可以转发ws吗 nginx转发304_配置文件

  • 启动 Tomcat
    进入Tomcat的bin目录中,使用./startup.sh启动 tomcat 服务器
cd /usr/src/apache-tomcat-7.0.70/bin/
./startup.sh

nginx 可以转发ws吗 nginx转发304_java_02

  • 在 Linux系统中 安装JDK
apt install openjdk-8-jre-headless

nginx 可以转发ws吗 nginx转发304_配置文件_03

1.1.3 在本机浏览器通过 虚拟机ip:8080 访问,得到下面图片

nginx 可以转发ws吗 nginx转发304_配置文件_04

1.2 访问过程分析以及配置文件配置

1.2.1 访问过程分析

nginx 可以转发ws吗 nginx转发304_nginx_05

1.2.2 window系统的host文件配置域名和ip对应关系的配置

文件所在目录:C:\Windows\System32\drivers\etc

nginx 可以转发ws吗 nginx转发304_nginx_06


添加内容:192.168.10.131 www.123.com

nginx 可以转发ws吗 nginx转发304_nginx 可以转发ws吗_07


配置完后的效果:

nginx 可以转发ws吗 nginx转发304_Nginx_08

1.2.3 Nginx配置文件进行请求转发的配置(反向代理配置)

  • 进入Nginx配置文件所在目录
cd /usr/local/nginx/conf

nginx 可以转发ws吗 nginx转发304_nginx_09

  • 更改配置文件,添加如下内容

    修改完后(重新加载配置文件):
cd /usr/local/nginx/sbin
./nginx -s reload

1.3 最终效果

nginx 可以转发ws吗 nginx转发304_Nginx_10

2、反向代理实例二

实现效果:使用Nginx反向代理,根据访问的路径跳转到不同端口的服务中

  • nginx监听端口为9001
  • 192.168.10.131 为 自己的虚拟机IP地址,需要修改
  • 访问http://192.168.10.131:9001/edu/ 直接跳转到 192.168.10.131:8080
  • 访问http://192.168.10.131:9001/vod/ 直接跳转到 192.168.10.131:8081

2.1 准备阶段

2.1.1 准备两个tomcat,一个8080端口,一个8081端口

  • 新建两个文件夹,并将tomcat压缩包放在两个文件夹中
  • 解压 tomcat 压缩包
  • 修改8081文件夹 tomcat 的配置文件

需要修改的位置

nginx 可以转发ws吗 nginx转发304_配置文件_11


nginx 可以转发ws吗 nginx转发304_nginx 可以转发ws吗_12

  • 启动两个tomcat
  • 开放防火墙端口

    如果是CentOS
sudo firewall-cmd --add-port=8081/tcp --permanent
sudo firewall-cmd --add-port=9001/tcp --permanent
firewall-cmd –reload

nginx 可以转发ws吗 nginx转发304_nginx 可以转发ws吗_13


nginx 可以转发ws吗 nginx转发304_java_14

2.1.2 准备测试页面

  • tomcat8080
  • nginx 可以转发ws吗 nginx转发304_java_15


  • nginx 可以转发ws吗 nginx转发304_Nginx_16

  • tomcat8081
  • nginx 可以转发ws吗 nginx转发304_nginx 可以转发ws吗_17

nginx 可以转发ws吗 nginx转发304_Nginx_18

2.2 Nginx配置文件的配置

2.2.1 首先进入配置文件所在目录

nginx 可以转发ws吗 nginx转发304_java_19

2.2.2 修改配置文件(新增一个server)

nginx 可以转发ws吗 nginx转发304_java_20

2.2.3 重新加载Nginx服务

nginx 可以转发ws吗 nginx转发304_nginx 可以转发ws吗_21

2.3 最终效果

nginx 可以转发ws吗 nginx转发304_配置文件_22


nginx 可以转发ws吗 nginx转发304_nginx 可以转发ws吗_23

3 、location指令说明

该指令用于匹配 URL。

语法如下:

nginx 可以转发ws吗 nginx转发304_java_24

3.1、= uri

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

3.2、~ uri

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

3.3、~* uri

用于表示 uri 包含正则表达式,但是不区分大小写。

3.4、~~ uri

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

3.5、注意

如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。