# nginx反向代理
Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强。
服务于客户端的是正向代理,例如你需要翻墙时在浏览器配置的代理服务器;
服务于服务器端的是反向代理,主要用途是负载均衡与协调适配。
# Nginx配置实例-反向代理1
A 实现效果:打开浏览器,在浏览器地址栏输入www.123.com
,跳转到Linux系统tomcat主页。
B 准备工作:
实验环境:Centos7,开放8080端口
启动tomcat,端口8080
# 防火墙开启8080端口 或关闭防火墙
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
阿里云服务器安全组添加8080端口
1
2
3
4
5
6
2
3
4
5
6
C 修改本地hosts文件,sudo vim /etc/hosts
,添加129.111.111.11 www.123.com
,其中129.111.111.11是你服务器的ip。
注意,需要备案才能访问,但可以直接用ip进行访问
D 反向代理配置
cd /usr/local/nginx/conf
vim nginx.conf
......
server {
listen 80;
server_name localhost;
location / {
root html;
# 进行请求转发的配置
proxy_pass http://localhost:8080;
index index.html index.htm;
}
......
}
......
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
E 启动NGINX,测试
# Nginx配置实例-反向代理2
A 实现效果:
访问http://129.204.116.22:8080/aaa/
直接跳转到129.204.116.22:9090
访问http://129.204.116.22:8080/bbb/
直接跳转到129.204.116.22:9966
B 准备工作:
准备两个tomcat服务器,一个9090端口,一个9966端口
创建文件夹和测试页面
- 端口为9090的Tomcat: webapps/aaa/index.html
- 端口为9966的Tomcat: webpaas/bbb/index.html
C,具体配置
开放对外访问的端口: 8080、9090、9966
......
server {
listen 8080;
server_name localhost;
location ~ /aaa/ {
proxy_pass http://127.0.0.1:9090;
}
location ~ /bbb/ {
proxy_pass http://127.0.0.1:9966;
}
}
......
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
注意:
= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
~ 为区分大小写匹配(可用正则表达式)
!~为区分大小写不匹配
~* 为不区分大小写匹配(可用正则表达式)
!~*为不区分大小写不匹配
^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。
1
2
3
4
5
6
2
3
4
5
6
实验结果: