如何在Nginx上托管的单个域下托管多个Flask应用程序?

霍普

我想要达到的目标:

我有一个托管mydomain.com的Nginx Web服务器。当有人在其客户端中键入domain.com时,我希望我的服务器从中提供index.html。/var/www/mydomain/当他们键入mydomain.com/flaskapp1时,他们应该看到flaskapp1。当他们键入mydomain.com/flaskapp2时,他们应该看到flaskapp2。

我已经设法通过此处的http://www.markjberger.com/flask-with-virtualenv-uwsgi-nginx/教程获得了一个或其他烧瓶应用程序的服务,但是当尝试实现为两个单独的烧瓶应用程序提供服务时,我遇到了困难。当我尝试在浏览器中使用mydomain.co.uk/flaskapp或mydomain.co.uk/flaskapp2访问任何一个烧瓶应用程序时,都没有看到flask应用程序,而是收到404消息。

这是我到目前为止所拥有的:

猫/etc/nginx/sites-available/mydomain.co.uk

server {
       listen 80;

        server_name www.mydomain.co.uk mydomain.co.uk;

        location / {
               root /var/www/html/;
               index index.html index.htm;
        }

        location /flaskapp {
                include uwsgi_params;
                uwsgi_pass unix:/tmp/flaskapp.sock;
        }

         location /flaskapp2 {
              include uwsgi_params;
              uwsgi_pass unix:/tmp/flaskapp2.sock;
         }
 }

上面的conf文件已被sim链接到中/etc/nginx/sites-enabled

猫/etc/uwsgi/apps-available/flaskapp.ini

[uwsgi]
vhost = true
socket = /tmp/flaskapp.sock
venv = /var/www/flaskapp/venv
chdir = /var/www/flaskapp
module = flaskapp
callable = app

猫/etc/uwsgi/apps-available/flaskapp2.ini

[uwsgi]
vhost = true
socket = /tmp/flaskapp2.sock
venv = /var/www/flaskapp2/venv
chdir = /var/www/flaskapp2
module = flaskapp2
callable = app

这两个.ini文件都已链接到/etc/uwsgi/apps-enabledUWSGI可以正常重启,没有任何问题,并且可以正常运行。flaskapp.sock和flaskapp2.sock均归www-data所有

猫/var/www/flaskapp/flaskapp.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World from flaskapp1!'

if __name__ == '__main__':
    app.run(host='0.0.0.0')

猫/var/www/flaskapp2/flaskapp2.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World from flaskapp2!'

if __name__ == '__main__':
    app.run(host='0.0.0.0')

猫/var/www/mydomain.co.uk/index.html

<!DOCTYPE html>
<html>
<body>

<h1>mydomain.co.uk</h1>

<p>This is the index page of my domain.co.uk</p>

</body>
</html>

两个虚拟环境都安装了flask,并且将使用开发服务器运行flask应用程序。

我希望这是我错过的简单事情。

霍普

这里查看NGINX的uwsgi文档

具体来说:

不幸的是,nginx无法根据SCRIPT_NAME重写PATH_INFO。因此,您需要指示uWSGI在“挂载点”中映射特定的应用程序,并自动重写SCRIPT_NAME和PATH_INFO:

更改myflaskapp.iniflaskapp2.ini文件以包含应用程序的挂载点,然后打开manage-script-name变量已奏效。

猫/etc/uwsgi/apps-available/flaskapp.ini

[uwsgi]
vhost = true
socket = /tmp/flaskapp.sock
venv = /var/www/flaskapp/venv
chdir = /var/www/flaskapp
module = flaskapp
callable = app
mount = /flaskapp=flaskapp.py
manage-script-name = true

猫/etc/uwsgi/apps-available/flaskapp2.ini

[uwsgi]
vhost = true
socket = /tmp/flaskapp2.sock
venv = /var/www/flaskapp2/venv
chdir = /var/www/flaskapp2
module = flaskapp2
callable = app
mount = /flaskapp2=flaskapp2.py
manage-script-name = true

现在,根据需要,两个烧瓶应用程序都通过nginx通过uwsgi运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在单个VPS上托管多个应用程序/服务

来自分类Dev

如何在Azure上托管Codeigniter应用程序?

来自分类Dev

如何在 AWS 上托管 nanohttpd java 应用程序?

来自分类Dev

如何在单个AWS EC2实例上托管多个域和子域

来自分类Dev

如何在单个AWS EC2实例上托管多个域和子域

来自分类Dev

如何托管多个 Angular 应用程序,使用 nginx 容器进行子域

来自分类Dev

如何在一个VPS上托管具有3个不同域的3个节点应用程序?

来自分类Dev

如何在同一个域上托管我的API和Web应用程序?

来自分类Dev

使用Nginx + Unicorn在子文件夹上托管多个Rails应用程序

来自分类Dev

如何对Azure上托管的Web应用程序和window的IIS服务器上托管的Web应用程序使用相同的自定义域?

来自分类Dev

在DigitalOcean上托管多个流星应用程序

来自分类Dev

如何使用Puma和Nginx配置在子URL上托管的Rails 3应用程序?

来自分类Dev

在Nginx Ubuntu 14.04上托管多个应用

来自分类Dev

如何在Godaddy Windows托管服务器上托管ASP.NET核心应用程序

来自分类Dev

Bitnami MEAN的Amazon EC2实例-如何在端口80上托管应用程序?

来自分类Dev

如何在Apache服务器上托管Dash应用程序?

来自分类Dev

如何在应用程序上托管WCF服务器?

来自分类Dev

如何在heroku上托管angular2应用程序?

来自分类Dev

如何配置单个flask应用程序以处理多个域?

来自分类Dev

如何在Apache或NodeJS服务器上托管Angularjs应用程序或MEAN客户端应用程序?

来自分类Dev

如何在Apache或NodeJS服务器上托管Angularjs应用程序或MEAN客户端应用程序?

来自分类Dev

处理Heroku上托管的Clojure分类Web应用程序的子域

来自分类Dev

Nginx在Sub uri上托管单个Rails应用

来自分类Dev

是否可以使用单个package.json在Heroku上托管MERN应用程序?

来自分类Dev

如何将多个应用程序部署到单个Gitlab托管集群?

来自分类Dev

自动重新加载PythonAnywhere.com上托管的Python-Flask应用程序

来自分类Dev

如何使用FIrebase托管应用程序映射Godaddy域

来自分类Dev

如何在不使用Google App引擎的情况下在专用服务器上托管Go应用程序

来自分类Dev

如何在不使用Google App引擎的情况下在专用服务器上托管Go应用程序

Related 相关文章

  1. 1

    在单个VPS上托管多个应用程序/服务

  2. 2

    如何在Azure上托管Codeigniter应用程序?

  3. 3

    如何在 AWS 上托管 nanohttpd java 应用程序?

  4. 4

    如何在单个AWS EC2实例上托管多个域和子域

  5. 5

    如何在单个AWS EC2实例上托管多个域和子域

  6. 6

    如何托管多个 Angular 应用程序,使用 nginx 容器进行子域

  7. 7

    如何在一个VPS上托管具有3个不同域的3个节点应用程序?

  8. 8

    如何在同一个域上托管我的API和Web应用程序?

  9. 9

    使用Nginx + Unicorn在子文件夹上托管多个Rails应用程序

  10. 10

    如何对Azure上托管的Web应用程序和window的IIS服务器上托管的Web应用程序使用相同的自定义域?

  11. 11

    在DigitalOcean上托管多个流星应用程序

  12. 12

    如何使用Puma和Nginx配置在子URL上托管的Rails 3应用程序?

  13. 13

    在Nginx Ubuntu 14.04上托管多个应用

  14. 14

    如何在Godaddy Windows托管服务器上托管ASP.NET核心应用程序

  15. 15

    Bitnami MEAN的Amazon EC2实例-如何在端口80上托管应用程序?

  16. 16

    如何在Apache服务器上托管Dash应用程序?

  17. 17

    如何在应用程序上托管WCF服务器?

  18. 18

    如何在heroku上托管angular2应用程序?

  19. 19

    如何配置单个flask应用程序以处理多个域?

  20. 20

    如何在Apache或NodeJS服务器上托管Angularjs应用程序或MEAN客户端应用程序?

  21. 21

    如何在Apache或NodeJS服务器上托管Angularjs应用程序或MEAN客户端应用程序?

  22. 22

    处理Heroku上托管的Clojure分类Web应用程序的子域

  23. 23

    Nginx在Sub uri上托管单个Rails应用

  24. 24

    是否可以使用单个package.json在Heroku上托管MERN应用程序?

  25. 25

    如何将多个应用程序部署到单个Gitlab托管集群?

  26. 26

    自动重新加载PythonAnywhere.com上托管的Python-Flask应用程序

  27. 27

    如何使用FIrebase托管应用程序映射Godaddy域

  28. 28

    如何在不使用Google App引擎的情况下在专用服务器上托管Go应用程序

  29. 29

    如何在不使用Google App引擎的情况下在专用服务器上托管Go应用程序

热门标签

归档