nginx+uwsgi下Flask

2024-05-15 02:41:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在开发一个flask应用程序,但是在尝试配置服务器4个小时后,我还是搞不懂。在

事情是这样的:

  • 虚拟机可通过xx.xx.xx.xx:81

  • 在这个服务器上,我的应用程序位于:/var/hg/repositories/data/测试.py

我想通过xx.xx.xx.xx:81/ws

这是我对nginx所做的:

 location = /var/hg/repositories/data { rewrite ^ /var/hg/repositories/data/; }
     location /ws { try_files $uri @ws; }
     location @ws {
        include uwsgi_params;
        uwsgi_param SCRIPT_NAME /var/hg/repositories/data;
        uwsgi_modifier1 30;
        uwsgi_pass unix:/tmp/uwsgi.sock;
     }

我有一份关于uwsgi午餐的文件:

^{pr2}$

去xx.xx.xx.xx:81给了我经典的nginx欢迎语。在

去xx.xx.xx.xx:81/ws给了我404。在

我做错什么了?在

在配置更新后,我已经

    location = /var/hg/repositories/data/
    location /var/hg/repositories/data/ { try_files $uri @web }
    location @ws {
             uwsgi_pass unix:/tmp/uwsgi.sock;
    }

我的uwsgi配置:

uwsgi:
  socket: unix:/tmp/uwsgi.lock
  master: 1
  workers: 1
  chmod-socket: 666
  auto-procname: 1
  pidfile: /tmp/uwsgi.pid
  deamonize: /var/log/uwsgi.log
  manage-script-name: true
  mount: /ws=/var/hg/repositories/data/test.py
  callable: app

Tags: py服务器应用程序datawsvarunixnginx
1条回答
网友
1楼 · 发布于 2024-05-15 02:41:24

你必须在uWSGI中“挂载”应用程序,目前你已将其作为空脚本_NAME“挂载”

装载:/ws=测试.py在

可调用:应用程序

(删除'module'指令)就可以了。在

我建议您避免nginx管理SCRIPT_NAME,因为它在这方面不太聪明,使用modifier130确实是一种丑陋的黑客行为。在

只需从nginx中删除uwsgi_param和uwsgi_modifier1,并将manage script name:true添加到uwsgi

相关问题 更多 >

    热门问题