资讯专栏INFORMATION COLUMN

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

Ali_ / 1400人阅读

摘要:博客写得差不多了,打算部署到云上因为速度的关系,不打算部署在上,于是申请了阿里云,环境是上篇文章提到的位安装和配置好和,又稍微了解点服务器的知识后,打算按这里的方法进行部署,思路是用当应用容器,当反向代理安装安装非常简单,一条命令就解决了测

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

安装gunicorn

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

安装NGINX

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

配置NGINX

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

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技术时,同一端口只能有一个进程监听

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40557.html

相关文章

  • flask笔记:部署flask

    摘要:网上有很多种发布部署的方式,这里我使用的是发布。但当我部署成功后,我发现了一个问题。再说回问题当我用的命令启动服务时,发现的正则表达式的路径转发规则发生了问题。导致访问地址发生跳转不正常和错误的现象。,下面说回正题,介绍如何部署。 网上有很多种发布部署flask的方式,这里我使用的是Gunicorn、nginx发布flask。 先说明一下为什么不使用supervisor,之前我也是按照...

    Kylin_Mountain 评论0 收藏0
  • 如何在 virtualenv 环境下搭建 Python Web

    摘要:生产环境下,自带的服务器,无法满足性能要求。配置前面我们已经在系统环境下安装了安装好的二进制文件放在文件夹下,接下来使用来管理。参考文章探针安装部署部署笔记在生产环境上部署使用详解本文系工程师编译整理。 由于字数的限制,其实本篇文章的全标题为 《如何在 virtualenv 环境下 Django + Nginx + Gunicorn+ Supervisor 搭建 Python Web》...

    roland_reed 评论0 收藏0
  • 如何在 virtualenv 环境下搭建 Python Web

    摘要:生产环境下,自带的服务器,无法满足性能要求。配置前面我们已经在系统环境下安装了安装好的二进制文件放在文件夹下,接下来使用来管理。参考文章探针安装部署部署笔记在生产环境上部署使用详解本文系工程师编译整理。 由于字数的限制,其实本篇文章的全标题为 《如何在 virtualenv 环境下 Django + Nginx + Gunicorn+ Supervisor 搭建 Python Web》...

    godiscoder 评论0 收藏0
  • ubuntu18.04中为django项目搭建nginx+gunicorn环境

    摘要:今天介绍一下如何在中为项目搭建环境。执行完后,再执行和进行编译和安装。安装完成后,即可启动并访问首页验证是否安装成功。 今天介绍一下如何在ubuntu18.04中为django项目搭建nginx+gunicorn环境。 具体步骤如下:1.安装gunicorn: pip install gunicorn2.使用gunicorn启动django项目: gunicorn 项目名称.wsgi:...

    IamDLY 评论0 收藏0
  • nginx + gunicorn + supervisor 部署 django 项目

    摘要:写好项目后,要将项目部署到服务器上,可以采用,和的方式进行部署。安装虚拟环境当一台机器上部署多个项目的时候,各个项目依赖的包可能有冲突,互相影响。使用虚拟环境可以将各个项目的执行环境隔离,互不影响。 写好Django项目后,要将项目部署到服务器上,可以采用nginx,gunicorn和supervisor的方式进行部署。 安装虚拟环境 当一台机器上部署多个项目的时候,各个项目依赖的包可...

    Pocher 评论0 收藏0

发表评论

0条评论

Ali_

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<