nginx按請求類型轉發(fā)(GET/POST/PUT/DELETE等請求分別轉發(fā)到不同后端地址)

1. 示例

只轉發(fā)GET和POST請求

if ($request_method ~ ^(GET|POST)$ ) {
   proxy_pass http://10.10.239.31:81;
}

不轉發(fā)POST請求

if ($request_method !~ ^(POST)$ ) {
   proxy_pass http://10.10.239.31:81;
}

PUT請求返回400

if ($request_method !~ ^(PUT)$ ) {
   return 400;
}

2. 完整示例

示例設計

  • nginx設置兩個service
    • 80端口顯示 “port 80”
    • 81端口顯示“port 81”
  • 80的GET請求轉發(fā)到81端口
  • 80的PUT請求被拒絕

nginx配置

# gzip設置
gzip on;
gzip_vary on;

gzip_comp_level 6;
gzip_buffers 16 8k;

gzip_min_length 1000;
gzip_proxied any;
gzip_disable "msie6";
#gzip_http_version 1.0;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

server {
    listen       80;
    server_name  web80;
    location / {
    if ($request_method ~ ^(GET)$ ) {
       proxy_pass http://10.10.239.31:81;
      }
    if ($request_method ~ ^(PUT)$ ) {
       return 400;
      }
        root   /html1;
        index  index.html index.htm;
        add_header Cache-Control no-store;
    }
}
server {
    listen       81;
    server_name  web81;
    location / {
        root   /html2;
        index  index.html index.htm;
        add_header Cache-Control no-store;
    }
}

postman驗證

  • GET請求被轉發(fā)


    image.png
  • PUT請求被拒絕


    image.png

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容