怎么用flask linux部署设置nginx服务器

作者:IPIDEA

2022-09-23 15:08:51

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

怎么用flask linux部署设置nginx服务器

我希望这是一个安全的部署,所以我将配置端口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),然后服务器将连接到应用程序。您将从网络浏览器收到警告,您必须取消警告,因为您使用了自签名证书。


*ipidea提供的服务必须在境外网络环境下使用

热门资讯