美文网首页
nginx按请求类型转发(GET/POST/PUT/DELETE

nginx按请求类型转发(GET/POST/PUT/DELETE

作者: 玄德公笔记 | 来源:发表于2022-10-20 21:12 被阅读0次

    1. 示例

    只转发GET和POST请求

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

    不转发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请求转发到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请求被转发


      image.png
    • PUT请求被拒绝


      image.png

    相关文章

      网友评论

          本文标题:nginx按请求类型转发(GET/POST/PUT/DELETE

          本文链接:https://www.haomeiwen.com/subject/crxpzrtx.html