线上部署Django: nginx + uwsgi +Django

参考:http://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/tutorials/Django_and_nginx.html

线上环境部署Django

环境:

操作系统:centos6

django: 1.10


1、上传代码至工作目录:

/data/python-project/blogproject
目录结构如下:


2、修改配置文件settings.py

+ ALLOWED_HOSTS = ['192.168.102.71','.myblog.cn']
STATIC_URL = '/static/'
+ STATIC_ROOT = os.path.join(BASE_DIR, 'static')

3、python manage.py collectstatic 命令收集静态文件到 static 目录下

$ python manage.py collectstatic

4、安装nginx

yum install nginx

启动:service nginx start

访问nginx: 出现welcome to nginx 说明nginx安装启动成功。



5、安装uwsgi

pip install uwsgi

6、配置uwsgi

创建测试脚本:

# cat test.py 
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

进行测试:

# uwsgi --http :8000 --wsgi-file test.py

通过http进行请求:出现 hello world 字样说明uwsgi正常


通过uwsgi访问web服务器:

启动:

uwsgi --http :8000 --module blogproject.wsgi

访问:可以正常访问



7、配置nginx

将uwsgi_params拷贝到工程目录下:

在/etc/nginx/conf.d下创建配置文件:

[root@serverdb01 conf.d]# vim mysite_nginx.conf 

# mysite_nginx.conf

# the upstream component nginx needs to connect to
upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
    #server 192.168.102.71:8001; # for a web port socket (we'll use this first)
    server unix:///data/python-project/blogproject/mysite.sock;
}

# configuration of the server
server {
    # the port your site will be served on
    listen      80;
    # the domain name it will serve for
    server_name www.myblog.cn; # substitute your machine's IP address or FQDN
    charset     utf-8;
    access_log  /var/log/nginx/myweb_access.log;
    error_log   /var/log/nginx/myweb_error.log;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
    location /media  {
        alias /data/python-project/blogproject/media;  # your Django project's media files - amend as required
    }

    location /static {
        alias /data/python-project/blogproject/static; # your Django project's static files - amend as required
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        proxy_set_header Host $host;
        uwsgi_pass  django;
        include     /data/python-project/blogproject/uwsgi_params; # the uwsgi_params file you installed
    }
}

创建好 mysite_nginx.conf文件后需要重启nginx:

service nginx restart

为了测试nginx已经正常工作,我们在/data/python-project/blogproject目录下创建了media目录,并将一个图片拷贝在了这个目录下


然后通过http请求进行访问: 注意本地访问域名www.myblog.cn需要配置hosts



配置好nginx后使用uwsgi启动django服务:

uwsgi --socket mysite.sock --module blogproject.wsgi --chmod-socket=666

通过nginx访问web服务:

8、配置uwsgi以允许.ini文件

配置文件位置:/data/python-project/blogproject/myweb_uwsgi.ini

配置文件内容:

# cat myweb_uwsgi.ini 
[uwsgi]
#socket = :8000

# the base directory (full path)
chdir           = /data/python-project/blogproject


# Django s wsgi file
module          = blogproject.wsgi

# process-related settings
# master
master          = true

# maximum number of worker processes
processes       = 2

socket		= /data/python-project/blogproject/mysite.sock
# ... with appropriate permissions - may be needed
chmod-socket    = 666
# clear environment on exit
vacuum          = true

通过.ini文件启动uwsgi

# uwsgi --ini myweb_uwsgi.ini
再次测试Django站点是否正常工作。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值