Nginx的反向代理

Nginx的反向代理

正向代理

  1. 正向代理服务器时由客户端设立的
  2. 客户端了解代理服务器和目标服务器是谁
  3. 帮助咱们实现突破访问权限,提高访问速度,对目标服务器隐藏客户端的ip地址

反向代理

  1. 反向代理服务器是配置在服务器端的
  2. 客户端是不知道访问的是到底是哪一台服务器
  3. 达到负载均衡,并且可以隐藏服务器真正的ip地址

基于Nginx实现反向代理

准备一个目标服务器
在docker中启动一个tomcat容器
编写nginx配置文件,通过Nginx访问到tomcat服务器

server{
  listen 80;
  server_name localhost;
#基于反向代理访问到Tomcat服务器
  locaton / {
    proxy_pass http://192.168.234.100:8088/;   
  }
}

关于Nginx的location路径映射

优先级关系

(location=) > (location/xxx/yyy/zzz) > (location ^~) > (location ,*) > (loacation /起始路径) > (location /)

# = 匹配
location = / {
#精准匹配,主机名ip后面不能带任何字符串
}
# 通用匹配
location /xxx {
#匹配所有以xxx开头的路径
}
# 正则匹配
location ~ /xxx{
#匹配所有以xxx开头的滤镜
}
#匹配开头路径
location ^~ /images/{
#匹配所有以/images开头的路径
}
#~* . (gif|jpg|png)${
 #匹配以gif或者jpg或者png结尾的路径
}

负载均衡

Nginx为我们提供了三种负载均衡的策略

  1. 轮询:
    将客户端发起的请求,平均分配给每一台服务器
  2. 权重:
    会将客户端的请求,根据服务器的权重值不同,分配给不同的数量
  3. ip hash:
    基于发起请求的客户端ip地址不同,他始终会将请求发送到指定的服务区上

Nginx集群

引言

单点故障,避免nginx宕机,导致整个程序崩溃
准备keepalived,监听nginx的健康情况
准备haproxy,提供一个虚拟的路径,统一的去接收用户请求

我会写代码+代码改变世界=我会改变世界! 为什么要改变世界? 如果无法改变世界,那么,世界就会改变我......
原文地址:https://www.cnblogs.com/chougoushi/p/13403674.html