Centos环境下Django+gunicorn+Nginx+python3.6

Centos环境下Django+gunicorn+Nginx+python3.6

准备工作:
centos 下运行lsb_release -a 显示如下版本信息

LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.4.1708 (Core) 
Release:        7.4.1708
Codename:       Core

下载 Gunicorn
首先确保gunicorn安装的是python3.6版本:
pip3 –version
显示如下:
- **pip 9.0.1 from /usr/local/python3.6/lib/python3.6/site-packages (python 3.6)
pip3 install gunicorn
显示如下
Collecting gunicorn
Downloading http://mirrors.aliyun.com/pypi/packages/55/cb/09fe80bddf30be86abfc06ccb1154f97d6c64bb87111de066a5fc9ccb937/gunicorn-19.8.1-py2.py3-none-any.whl (112kB)
100% |████████████████████████████████| 122kB 10.0MB/s
Installing collected packages: gunicorn
Successfully installed gunicorn-19.8.1
写个用例测试一下:

    def app(environ, start_response):
        data = b"Hello, World!\n"
        start_response("200 OK", [
            ("Content-Type", "text/plain"),
            ("Content-Length", str(len(data)))
        ])
        return iter([data])

gunicorn -w 4 myapp:app
显示如下

[2018-06-20 15:36:14 +0800] [19944] [INFO] Starting gunicorn 19.8.1
[2018-06-20 15:36:14 +0800] [19944] [INFO] Listening at: http://127.0.0.1:8000 (19944)
[2018-06-20 15:36:14 +0800] [19944] [INFO] Using worker: sync
[2018-06-20 15:36:14 +0800] [19963] [INFO] Booting worker with pid: 19963
[2018-06-20 15:36:15 +0800] [19964] [INFO] Booting worker with pid: 19964
[2018-06-20 15:36:15 +0800] [19965] [INFO] Booting worker with pid: 19965
[2018-06-20 15:36:15 +0800] [19967] [INFO] Booting worker with pid: 19967

没有问题继续下一步
gunicorn测试django1.8
首先DEBUG改成False,只有关闭了调试模式,后面才能让nginx来寻找静态文件。

gunicorn -w 3 -b 127.0.0.1:8080 project.wsgi:application

说明一下:project改成项目名就好了, application 不需要改
显示如下:

[2018-06-20 15:42:29 +0800] [27418] [INFO] Starting gunicorn 19.8.1
[2018-06-20 15:42:29 +0800] [27418] [INFO] Listening at: http://127.0.0.1:8080 (27418)
[2018-06-20 15:42:29 +0800] [27418] [INFO] Using worker: sync
[2018-06-20 15:42:29 +0800] [27421] [INFO] Booting worker with pid: 27421
[2018-06-20 15:42:29 +0800] [27428] [INFO] Booting worker with pid: 27428
[2018-06-20 15:42:29 +0800] [27438] [INFO] Booting worker with pid: 27438

运行` curl  http://localhost:8080/`  预期显示
当然了, 这里终端关闭进程就终止了,使用nohup  commond & 命令解决即可


nohup gunicorn -w 3 -b 127.0.0.1:8080 project.wsgi:application &

接下来最关键的一步:配置Nginx
gunicorn已经运行起来了,没必要关掉
只需要配置location / 中的内容就ok了,

        #侦听80端口
        listen    80;
        #定义使用 www.nginx.cn访问
        server_name  www.nginx.cn;

        #定义服务器的默认网站根目录位置
        root /root/projects/project/;

        #设定本虚拟主机的访问日志
        access_log  logs/nginx.access.log  main;

        #默认请求
        location / {

            #定义首页索引文件的名称
            #index index.php index.html index.htm;
            proxy_pass http://127.0.0.1:8080;  #最关键的一条:nginx将来自80端口的请求代理到8080端口
            index index.php index.html index.htm;

        }

        # 定义错误提示页面
        error_page   500 502 503 504 /50x.html;
        location = /50x.html {
        }



location /  顾名思义,定位,就是当访问 / 的时候,nginx会将请求转给本地的8080端口,而后面的设置都是一些基本的配置,可以直接用

接下来nginx -t 测试下配置文件是否有语法错误:

/usr/local/nginx/sbin/nginx -t

由于我的nginx没有配置软连接
这是唯一启动nginx的方法
显示如下

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

“`
接下来启动nginx ,外网访问80端口,就是你用curl 访问8080端口一样的效果了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值