您的位置:首页 >文章内容

怎么用flask linux部署设置nginx

来源:互联网 作者:admin 时间:2021-03-15 11:05:39

    由gunicorn启动的microblog应用服务器运行在本地端口8000。目前我需要做的就是让应用程序公开。要获得对公共网络服务器的访问,我在防火墙上打开两个端口(80和443),以处理应用程序的网络通信。


微信截图_20210315110615.png


    我希望这是一个安全的部署,所以我将配置端口80,并将所有的通信转发到端口443进行加密。我会首先创建SSL证书。可以创建自签名SSL证书,但实际部署并不好,因为网络浏览器会警告用户该证书不是由可信证书发行商发行的。以下命令用于创建microblogSSL证书:


    $ mkdir certs


    $ openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \


    -keyout certs/key.pem -out certs/cert.pem


    该命令将要求您提供有关应用程序和您自己的信息。SSL证书中将包括此信息。如用户要求查看,则向用户显示网络浏览器。上述命令产生的结果将是两个文件:key.pem和cert.pem,我将把它们放在certs子目录下的Microblog根目录下。


    要使用nginx服务,需要为其编写配置文件。在安装大多数nginx时,文件必须位于/etc/nginx/sites-enabled目录。Nginx已在此安装了一个不需要的测试站点,因此我首先将其移除:


    $ sudo rm /etc/nginx/sites-enabled/default


    下面你可以看到Microblog的nginx配置文件,它在 /etc/nginx/sites-enabled/microblog 中:


    /etc/nginx/sites-enabled/microblog:Nginx配置


    server {


    # listen on port 80 (http)


    listen 80;


    server_name _;


    location / {


    # redirect any requests to the same URL but on https


    return 301 https://$host$request_uri;


    }


    }


    server {


    # listen on port 443 (https)


    listen 443 ssl;


    server_name _;


    # location of the self-signed SSL certificate


    ssl_certificate /home/ubuntu/microblog/certs/cert.pem;


    ssl_certificate_key /home/ubuntu/microblog/certs/key.pem;


    # write access and error logs to /var/log


    access_log /var/log/microblog_access.log;


    error_log /var/log/microblog_error.log;


    location / {


    # forward application requests to the gunicorn server


    proxy_pass http://localhost:8000;


    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;


    }


    location /static {


    # handle static files directly, without forwarding to the application


    alias /home/ubuntu/microblog/static;


    expires 30d;


    }


    }


    你需要告诉nginx重新加载配置以激活它:


    $ sudo service nginx reload


    应用程序现在应该已经部署了。使用Web浏览器,您可以输入服务器的知识产权地址(如果使用VagrantVM,则为192.168.33.10),然后服务器就会连接到应用程序。因为使用了自签名证书,所以您将从网络浏览器收到警告,您必须取消警告。


因为专业! 所以简单! 产品至上,价格实惠 是我们服务追求的宗旨

免费试用