5. Nginx 反向代理实例 2

1. 实现效果

使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中,

nginx 监听端口为 9001

  • 访问 http://192.168.17.129:9001/edu/ 直接跳转到 127.0.0.1:8080
  • 访问 http://192.168.17.129:9001/vod/ 直接跳转到 127.0.0.1:8081

2、准备工作

(1)准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口

这个地方,需要将其中代表 8081 的服务器进行修改,进入到 /Tomcat8081/apache-tomcat-7.0.106/conf

1
vim server.xml

(2)创建文件夹和测试页面

说明:tomcat 加载是加载的 webapps 中的东西,所以放在该文件夹下。

/Tomcat8080/apache-tomcat-7.0.106/webapps 中,新建 edu 文件夹,并在该文件夹下新建文件 a.html, 内容如下:

1
<h1>8080</h1>

/Tomcat8081/apache-tomcat-7.0.106/webapps 中,新建 vod 文件夹,并在该文件夹下新建文件 a.html, 内容如下:

1
<h1>8081</h1>

3、具体配置

(1)找到 nginx 配置文件,进行反向代理配置

三处改变:监听端口 + nginx地址 + 转发地址

(2)开放对外访问的端口号 9001 8080 8081

4、最终测试

重启 nginx,

1
./nginx -s reload
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
worker_processes  1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

server {
listen 80;
server_name 192.168.226.135;

location / {
root html;
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

server {
listen 9001;
server_name 192.168.226.135;

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

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

}

location 指令说明

该指令用于匹配 URL。

语法如下:

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

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


5. Nginx 反向代理实例 2
http://binbo-zappy.github.io/2024/12/15/nginx/5-Nginx反向代理实例2/
作者
Binbo
发布于
2024年12月15日
许可协议