环境 阿里云服务器+CentOS8+Anaconda3+Nginx+gunicorn+falsk+tensorflow
问题一
前面过程:在CentOS8中安装了Nginx,在Anaconda中安装了gunicorn,然后在conda虚拟环境中启动实例程序index.py
gunicorn -b 127.0.0.1:5000 index:app
其中127.0.0.1:5000是与Nginx交互的端口
index是index.py文件名
问题:Nginx启动后提示错误,错误描述端口被占用,也无法通过外网访问服务器程序
原因:由于aliyun服务器默认将大多数端口设置为进入访问限制,所以,外网访问不到服务器程序
解决方案:修改服务器配置安全组规则,开放端口
UC截图1.png
问题二
前面过程:将配置安全组规则配置好后,文件可以访问,将文件传输到服务器 [ 从windows传到CentOS服务器使用putty最好 ] ,然后在conda环境中利用gunicorn启动程序文件
问题:外网可以访问网页,可是却无法将文件上传
原因:网页源文件上传地址忘记改为服务器地址
解决方案:改网页文件
问题三
前面过程:远程登陆服务器打开程序后,外网可以正常访问和上传文件
问题:登录服务器结束远程会话后,外网无法访问网站,[ 不可能一直开自己的电脑吧,那服务器要来干什么 ]
但是Nginx依然在运行,Nginx会返回无法访问的页面
原因:似乎每次结束会话的时候,服务器都会结束gunicorn程序,但是也不对,因为在下一次打开登陆服务器会话的时候,gunicorn进程依然存在,难道是每次结束会话服务器就会关闭conda的当前环境吗?因为程序是在conda环境中运行的,gunicorn也安装在conda环境中,云里雾里
解决方案:使用aliyun推荐方式启动程序
使用推荐发送远程命令方式启动程序,在关闭会话后依然可以正常访问网站
Tips:
1、为什么不可以直接使用gunicorn而要用Nginx ?
实验gunicorn -b x.x.x.x:5000 index:app 将x.x.x.x改为外网地址,gunicorn程序报错不可访问
2、为什么要用anaconda而不直接安装flask和tensorflow?
在CentOS环境中用pip安装tensorflow经常出错,用anaconda安装管理包很便捷
3、为什么不在anaconda中安装Nginx?
可以使用conda安装nginx,但是需要找配置nginx配置文件,找半天,不方便
网友评论