찾다

 >  Q&A  >  본문

nginx rewrite配置问题

最近用flask写了一个接口,在配置nginx转发的时候遇到了点小问题,nginx配置如下:

1

2

3

4

5

6

7

8

9

10

server {

    listen 80;

    server_name xxx.xxx.xxx;

 

    location /upload_api {

        rewrite ^/upload_api/(.+)$ /$1 break;

        proxy_pass http://127.0.0.1:8082;

    }

     

}

flask收到的请求路径确实

1

127.0.0.1 - - [21/Oct/2016 16:31:36"GET /upload_api HTTP/1.0" 404 -

我怎么能让用户请求/upload_api的时候flask收到的请求路径为/呢?


高洛峰高洛峰2986일 전893

모든 응답(1)나는 대답할 것이다

  • 三叔

    三叔2016-10-22 15:21:23

    不知道我理解的对不对。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    server {

        listen 80;

        server_name xxx.xxx.xxx;

     

        location /upload_api {

            rewrite ^/upload_api/(.+)$ /$1 break;

            proxy_pass http://127.0.0.1:8082;

        }

         

    }

    这是你的 nginx 配置,这句话 rewrite ^/upload_api/(.+)$ /$1 break 的意思是当你访问xxx.xxx.xxx/upload_api/pwd 的时候,会重定向到 xxx.xxx.xxx/pwd

    你为什么用 .+ 而不是 .*,在正则中 + 代表一次或多次,* 代表 0 到多次,我觉得用 * 比较合适吧

    既然用了 break,后面的内容就可以删了

    1

    127.0.0.1 - - [21/Oct/2016 16:31:36"GET /upload_api HTTP/1.0" 404 -

    不懂 flask,但是你这条记录好像是访问 /upload_api 出现了 404,应该是你 rewrite 用了 .+ 导致的吧。

    회신하다
    0
  • 취소회신하다