引言

正向代理

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

image.png

反向代理

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

image.png

启动服务器

image.png

反向代理

配置反向代理

  1. vi /usr/local/docker/docker-nginx/nginx/conf.d/default.conf
  1. server {
  2. listen 80;
  3. listen [::]:80;
  4. server_name localhost;
  5. # 基于反向代理通用匹配规则访问Netty服务器
  6. location / {
  7. proxy_pass http://192.168.233.111:8080/;
  8. }
  9. }

配置文件重新加载

如果在运行的过程中需要调整配置,可以使用如下两个命令重新加载配置文件

  • 检查配置文件

    1. docker exec -it nginx service nginx check-reload
  • 重新加载配置文件

    1. docker exec -it nginx service nginx reload

    没有代理直接访问

    image.png

    使用Nginx反向代理

    image.png

    附录

    常用的配置规则

优先级

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

精准匹配

  1. location = / {
  2. #精准匹配,主机名后面不能带能和字符串
  3. #例如www.baidu.com不能是www.baidu.com/id=xxx
  4. }

通用匹配

  1. location /xxx {
  2. #匹配所有以/xxx开头的路径
  3. #例如127.0.0.1:8080/xxx xxx可以为空,为空则和=匹配一样
  4. }

正则匹配

  1. location ~ /xxx {
  2. #匹配所有以/xxx开头的路径
  3. }

匹配开头路径

  1. location ^~ /xxx/xx {
  2. #匹配所有以/xxx/xx开头的路径
  3. }

匹配结尾路径

  1. location ~* \.(gif/jpg/png)$ {
  2. #匹配以.gif、.jpg或者.png结尾的路径
  3. }