分享在宝塔部署python flask框架项目遇到的坑和弯路。
发现前端请求后端404,400,没有请求头,多次重定向等等问题都是Nginx配置的问题
重要的知识点:自定义的项目端口不能做对外的域名端口。!!!
最简单的部署用到的不同端口:项目端口、80、443端口。
1、创建项目自定义一个项目端口,如:5001、8001等,(前提在服务器安全组放行)。
项目端口需要对应app.py的端口,不然启动不了项目,项目端口不能设置为80端口。
生成环境把debug关掉。
2.添加域名,建议添加一个IP和xxx.com,默认80端口,不能使用项目端口。到这里有2个坑!报错域名已存在是在宝塔的其他项目使用这个域名,不同端口都不行,删掉之前的域名才能添加。
3、检验:使用http协议访问项目端口可以。
但发现80端口访问不行。
在宝塔安全组,检查发现 80,443端口未启用。
在终端手动启用:sudo nginx nginx
报错: [emerg] bind() to 0.0.0.0:5001 failed (98: Address already in use)
说:Nginx 尝试在端口 5001 上绑定,但该端口已经在使用中
这是个大坑!!
问题:项目端口5001为什么要和Nginx绑定?
因为添加域名时把项目端口做域名端口,加到Nginx配置文件里了。
原因查看我另外一篇文章。
问题出在宝塔自动生成的配置文件使用listen 5001;
把listen 5001;注释掉,再重新启动:sudo nginx nginx
配置文件如:
server
{
# listen 5330;
# listen 5001;
listen 80;
listen 443 ssl http2;
再使用默认80端口访问正常。
最后配置SSL证书就是把对应文件内容复制进去再保存就可以。
可以使用https访问。