正向代理与反向代理
正向代理:
- 正向代理服务是由客户端设立的。
- 客户端了解代理服务器和目标服务器都是谁。
- 帮助咱们实现突破访问权限,提高访问的速度,对目标服务器隐藏客户端的ip地址。
反向代理:
- 反向代理服务器是配置在服务端的。
- 客户端是不知道访问的到底是哪一台服务器。
- 达到负载均衡,并且可以隐藏服务器真正的ip地址。
基于Nginx实现反向代理
-
准备一个目标服务器。
-
启动之前的tomcat服务器。
-
编写nginx的配置文件,通过Nginx访问到tomcat服务器。
server{
listen 80;
server_name localhost;
# 基于反向代理访问到Tomcat服务器
location / {
# 注意:ip是tomcat内部ip地址, 端口号也是tomcat的内部端口号
proxy_pass http://172.17.0.2:8080/;
}
}
Nginx的location路径映射
优先级关系如下:
- location = /路径:优先级最高,精准匹配,一旦匹配, 不再去找其他匹配项。
- location ^~ /路径:优先级次之,字符串匹配,一旦匹配, 不再去找其他匹配项。
- location ~ 正则表达式:如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。
- location ~* 正则表达式:和location ~ 正则表达式相同,不过当前方式不区分大小写。
- location /路径:常规方式,匹配前缀,优先级最低。
# 直接匹配
location = / {
# 精准匹配,主机名后面不能带任何的字符串
}
# 常规匹配
location /xxx {
# 匹配所有以/xxx开头的路径
}
# 正则匹配
location ~ /xxx {
# 匹配所有以/xxx开头的路径
}
# 匹配开头路径
location ^~ /images/ {
# 匹配所有以/images开头的路径,匹配后,不再删选其他选项
}
# 正则匹配后缀
location ~* \.(gif|jpg|png)$ {
# 匹配以gif或者jpg或者png为结尾的路径
}
# 全部通配
location / {
# 匹配全部路径
}