如何从Web浏览器调用烧瓶应用程序?

时间:2014-11-11 20:31:00

标签: python-2.7 nginx flask centos uwsgi

我有一个适用于我的电脑的烧瓶应用程序。 当我在虚拟服务器(CentOs 6.5)上部署它时,我根据文章使用了nginx: https://www.digitalocean.com/community/tutorials/how-to-deploy-flask-web-applications-using-uwsgi-behind-nginx-on-centos-6-4

我不得不更改/etc/nginx/nginx.conf中的端口,因为它与apache端口发生冲突(导致nginx无法启动,因为端口已在使用中)。所以我的nginx.conf是:

worker_processes 1;

events {

    worker_connections 1024;

}

http {

    sendfile on;

    gzip              on;
    gzip_http_version 1.0;
    gzip_proxied      any;
    gzip_min_length   500;
    gzip_disable      "MSIE [1-6]\.";
    gzip_types        text/plain text/xml text/css
                      text/comma-separated-values
                      text/javascript
                      application/x-javascript
                      application/atom+xml;

    # Configuration containing list of application servers
    upstream uwsgicluster {

        server 127.0.0.1:8081;
        # server 127.0.0.1:8081;
        # ..
        # .

    }

    # Configuration for Nginx
    server {

        # Running port
        listen 81;

        # Settings to by-pass for static files 
        location ^~ /static/  {

            # Example:
            # root /full/path/to/application/static/file/dir;
            root /app/static/;

        }

        # Serve a static file (ex. favico) outside static dir.
        location = /favico.ico  {

            root /app/favico.ico;

        }

        # Proxying connections to application servers
        location / {

            include            uwsgi_params;
            uwsgi_pass         uwsgicluster;

            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;

        }
    }
}

我的申请位于12.12.15.16/cgi-bin/My_app下(此处的IP地址为虚拟)。

我使用以下命令行启动应用程序:

env/bin/uwsgi --socket 127.0.0.1:8081 --protocol=http --wsgi-file main.py --callable app

我的问题是:我现在如何通过网络浏览器调用我的应用程序?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的Flask应用正在侦听端口8081,但仅用于本地主机连接(127.0.0.1)。 Nginx正在端口81上侦听连接,并在8081上将它们传送到Flask。因此,从您自己的浏览器中,您想要访问http://your-digital-ocean-ip:81/