python - nginx rewrite配置问题

 手机用户2502881927 发布于 2022-10-29 11:45

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

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收到的请求路径确实

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

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

2 个回答
  • 用户请求/reload_api/down 你匹配/reload_api是匹配不到的把,要用~ /reload_api/.*
    注意要加~

    2022-11-12 01:48 回答
  • 不知道我理解的对不对。

    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

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

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

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

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

    2022-11-12 01:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有