怎么用flask linux部署设置nginx服务器
2022-09-23
由gunicorn启动的microblog应用程序服务器在当地端口运行8000。我目前需要做的是让应用程序公开。为了访问公共网络服务器,我在防火墙上打开了两个端口(80和443)来处理应用程序的网络通信。
我希望这是一个安全的部署,所以我将配置端口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立场,若存在侵权、安全合规问题,请及时联系IPIDEA进行删除。