安装配置gunicorn和NGINX的学习笔记

博客写得差很少了,打算部署到云上
由于速度的关系,不打算部署在AWS上,因而申请了阿里云,环境是上篇文章提到的CentOS 7 64位
安装和配置好Python3和MySQL,又稍微了解点web服务器的知识后,打算按这里的方法进行部署,思路是用gunicorn当应用容器,NGINX当反向代理html

安装gunicorn

安装很是简单,一条pip命令就解决了
测试也很简单,写个简单的Flask英语存成.py文件,放到某个目录,而后用gunicorn去运行就好
这两点能够参考gunicorn官网的quick start这里
肯定跑起来后,能够kill掉,须要时再启动
在gunicorn跑起来后会提示其pid,若是刷掉了,能够用netstat -plant或什么别的方式来确认
话说,用netstat -plant能够看到其进程对应的程序是python2,看起来gunicorn是python2写的python

安装NGINX

我很幸运地没有去官网看文档,而是直接尝试了yum install nginx,就安装成功了(装python时就装了很多依赖包)
后来再看官方文档时,发现他们没说这种简单安装方式,而是麻烦地再去配置Repository page什么的
我看看本身的版本,是最新的Stable版,摊手nginx

配置NGINX

按照这里的办法没搞定,无奈网上处处搜
这里知道能够经过修改nginx.conf文件来完成反向代理的配置,不过文件的位置有点不一样,我这里文件在/etc/nginx/目录,多是版本不一样致使的
打开发现里面有行include /etc/nginx/conf.d/*.conf;看上去是会导入其余配置文件的样子
那么咱们去那个文件夹新建一个.conf文件,因而新建了/etc/nginx/conf.d/test.conf文件,其内容以下:git

server {
    listen       8000;
    server_name  flasktest;
    location / {
            proxy_pass http://127.0.0.1:8000;
    }

}

改完后运行service nginx start发现报错
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
因而又处处翻文章,偶然间用netstat -plant查看状态时发现gunicorn正在监听8000端口,心中隐隐以为多是这个致使的,关掉gunicorn试了下发现报错消失
和朋友沟通发现由于本身底子不扎实,不知道这个知识点:
TCP协议中,不算某进程fork出的子进程,或使用共享socket技术时,同一端口只能有一个进程监听github

OK,那么把test.conf中端口改为7999,运行gunicorn,启动nginx服务,在浏览器里输入阿里云这台云服务器对应的公网IP加:7999
终于看到了熟悉的hello world
至此,部署gunicorn和NGINX基本完成,接下来就是部署博客web

相关文章
相关标签/搜索