django+nginx+uwsgi+service部署web应用

当我们写完了一个web应用就需要把他部署到服务器上。虽然django自带一个web服务器,但是功能比较简单,不适合在实际的生产环境中进行部署。django比较常用的部署方案是nginx+uwsgi。
本文主要介绍一下如何通过nginx+uwsgi部署web应用,以及通过service保证服务器重启后,web服务能重新启动。

下载nginx就不在赘述,网上的资源比较多。
主要讲一下nginx配置

server {
    listen       8001;    # 修改端口号
    server_name  x.x.x.x;

    charset utf-8;
    access_log      /var/log/nginx/mysite_access.log;
    error_log       /var/log/nginx/mysite_error.log;
    #access_log  logs/host.access.log  main;
    client_max_body_size 75M;

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8082;
        uwsgi_read_timeout 2;
    }
    location /static {
        expires 30d;
        autoindex on;
        add_header Cache-Control private;
        alias /home/yerx/djcode/mysite/static/;
     }
}

server_name表示web服务器的IP或者域名。
listen表示nginx监听的端口号。
通过uwsgi_pass制定wsgi的IP和端口
static指明静态文件所在的位置

再看一下uwsgi.ini的配置

# myweb_uwsgi.ini file
[uwsgi]

# Django-related settings
socket = /tmp2/mysite.sock
socket = :8082

# the base directory (full path)
chdir           = /home/yerx/djcode/mysite

# Django s wsgi file
module          = mysite.wsgi

# process-related settings
# master
master          = true

# maximum number of worker processes
processes       = 4

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

为了让web程序能够开机启动,我们需要添加一个服务器程序就是xxx.service这样的文件。
看一下mysite.service的内容

[Unit]
Description=mysite server daemon
After=network.target

[Service]
WorkingDirectory=/home/xxx/djcode/mysite/
ExecStart=/usr/local/bin/uwsgi  --socket mysite.sock --ini mysite_uwsgi.ini --chmod-socket=666
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值