目标
配置Nginx和Flask,实现HTTP自动跳转到HTTPS,并通过curl测试。
步骤
步骤1:安装Nginx
sudo apt update
sudo apt install nginx
curl 127.0.0.1
步骤2:备份原始配置文件
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
从文末参考链接查询
查询域名注册商、配置DNS解析配置(cname记录)、下载Nginx的ssl证书
步骤3:创建证书目录并复制证书文件
sudo mkdir /etc/nginx/cert
sudo cp ~/02_project/02_program/06_pythonweb80/.tg-cc755.cn.pem /etc/nginx/cert/_.tg-cc755.cn.pem
sudo cp ~/02_project/02_program/06_pythonweb80/.tg-cc755.cn.key /etc/nginx/cert/_.tg-cc755.cn.key
步骤4:配置Nginx
编辑Nginx的默认配置文件:
sudo vim /etc/nginx/sites-available/default
将文件内容替换为以下配置:
server {
listen 80;
server_name www.tg-cc755.cn;
# 将所有HTTP请求重定向到HTTPS
rewrite ^(.*)\( https://\)host\(1 permanent;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a></span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> location / {</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> index index.html index.htm;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> }</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>}</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a></span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>server {</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> listen 443 ssl;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> server_name www.tg-cc755.cn;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a></span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> ssl_certificate /etc/nginx/cert/_.tg-cc755.cn.pem;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> ssl_certificate_key /etc/nginx/cert/_.tg-cc755.cn.key;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a></span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> ssl_session_cache shared:SSL:1m;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> ssl_session_timeout 5m;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a></span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a></span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> ssl_prefer_server_ciphers on;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a></span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> location / {</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> proxy_pass http://127.0.0.1:8080;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> proxy_set_header Host \)host;
proxy_set_header X-Real-IP \(remote_addr;</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> proxy_set_header X-Forwarded-For \)proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
步骤5:测试Nginx配置
测试Nginx配置文件是否有语法错误:
sudo nginx -t
如果没有错误,重新加载Nginx配置:
sudo systemctl reload nginx
步骤6:启用Nginx开机自启动
启用Nginx开机自启动:
sudo systemctl enable nginx
步骤7:运行Flask应用程序
修改main.py文件,将Flask应用程序配置为监听8080端口:
from flask import Flask
app = Flask(name)
@app.route(‘/’)
def hello_world():
return ‘Hello, World!’
if name == ‘main’:
app.run(host=‘127.0.0.1’, port=8080)
确保你的Flask应用程序正在运行。如果还没有运行,可以使用以下命令启动:
sudo python ~/02_project/02_program/06_python_web80/main.py
步骤8:通过curl测试
使用curl测试HTTP自动跳转到HTTPS:
curl -I http://www.tg-cc755.cn
你应该会看到一个301重定向到HTTPS的响应。
然后测试HTTPS:
curl -I https://www.tg-cc755.cn
你应该会看到一个200 OK的响应,并且内容为“Hello, World!”。
参考链接
这样,你就完成了Nginx的安装和配置,并实现了HTTP自动跳转到HTTPS。Flask应用程序将监听8080端口,Nginx将请求代理到这个端口。
ICP备案/许可证号:湘ICP备号 (https://beian.miit.gov.cn/)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/147313.html