Nginx 配置:反向代理

阿宇嘟嘟嘟發表於2020-12-21

簡介

正向代理

  • 正向代理服務是由客戶端設立的
  • 客戶端了解代理伺服器和目標伺服器都是誰
  • 幫助我們們實現突破訪問許可權,提高訪問的速度,對目標伺服器隱藏客戶端的ip地址

image.png

反向代理

  • 反向代理伺服器是配置在服務端的
  • 客戶端不知道訪問的到底是哪一臺伺服器
  • 達到負載均衡,並且可以隱藏伺服器真正的ip地址

image.png

配置反向代理

vi /usr/local/docker/docker-nginx/nginx/conf.d/default.conf
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    # 基於反向代理通用匹配規則訪問Netty伺服器  
    location / {
        proxy_pass http://192.168.233.111:8080/;
    }
}

配置檔案重新載入

如果在執行的過程中需要調整配置,可以使用如下兩個命令重新載入配置檔案

  • 檢查配置檔案
docker exec -it nginx service nginx check-reload
  • 重新載入配置檔案
docker exec -it nginx service nginx reload

啟動伺服器並訪問

image.png

沒有代理直接訪問

image.png

使用Nginx反向代理

image.png

常用的配置規則

優先順序

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

精準匹配

location = / {
    #精準匹配,主機名後面不能帶能和字串
    #例如www.baidu.com不能是www.baidu.com/id=xxx
}

通用匹配

location /xxx {
    #匹配所有以/xxx開頭的路徑
    #例如127.0.0.1:8080/xxx   xxx可以為空,為空則和=匹配一樣
}

正則匹配

location ~ /xxx {
    #匹配所有以/xxx開頭的路徑
}

匹配開頭路徑

location ^~ /xxx/xx {
    #匹配所有以/xxx/xx開頭的路徑
}

匹配結尾路徑

location ~* \.(gif/jpg/png)$ {
    #匹配以.gif、.jpg或者.png結尾的路徑
}

相關文章