Nginx + uwsgi + Django 简单上线配置

先放上我线上部署结果:

http://47.94.4.96:8080


所有的注释自己手动删除,我忘了具体哪个是哪个的注释方法


没用过这种高级玩意,折腾好一阵子了,可算基本能用了.记录一下~

参考资料:http://code.ziqiangxuetang.com/django/django-nginx-deploy.html  自强学堂


线上环境

Ubuntu Python 2.7 Django 1.8  nginx 1.10.0, uWSGI 2.0.15  supervisord 3.3.2

目录结构(为什么好多人的教程不告诉我目录结构新手不懂啊- -)

假设有

/home/xxx/.../myblog

   myblog
    |__blog
        |__static
        |__media
    |
    |__mysite
    |

    |__uwsgi.ini

(不带后缀的是文件夹)

uWSGI部分

uwsgi.ini

[uwsgi]
socket = 127.0.0.1:28080    #这个地方和下面的那个地方一样的!!!这个端口就是写28080不是8080,可以随便写可用的端口号
chdir = /home/xxx/.../myblog
wsgi-file = /home/xxx/.../myblog/mysite/wsgi.py
touch-reload = /home/xxx/.../myblog/reload    #自己touch一个就行

//可以用这个先测试下项目是否能运行
uwsgi --http :8080 --chdir /home/xxx/.../myblog/blog --wsgi-file  /home/xxx/.../myblog/mysite/wsgi.py  

在浏览器中输入地址  IP:8080 能运行就是项目没有问题

最终
创建一个supervisord.conf文件echo_supervisord_conf \> ~/supervisord.conf
并在最后添加如下
[program:blog]
;uWSGI不知道用which uWSGI查看试试
command=/uWSGI的安装地址/uwsgi --ini /home/xxx/.../myblog/uwsgi.ini ;指定ini的地址
directory=/home/xxx/.../myblog   ;工程目录
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true

使用如下命令启动
supervisord -c ~/supervisord.conf

nginx部分

在自己的xxx/nginx/sites-available/下, 创建myblog.conf

地址举例: /etc/nginx/sites-available/mybog.conf

server{
	listen 8080;
	server_name 192.168.0.1;#这个地方可以是自己的ip也可以是www.xxxx.com
	charset utf-8;

	client_max_body_size 75M;

	location /media {
		alias  /home/xxx/.../myblog/blog/media;
	}

	location /static {
		alias /home/xxx/.../myblog/blog/static;
	}

	location / {
		uwsgi_pass 127.0.0.1:28080;   #这个地方和上面的一样的!!!
		include /etc/nginx/uwsgi_params;
	}
}
将sites-available/myblog.conf 软连接到 sites-enable/myblog.conf

如:ln -s /etc/nginx/sites-available/mmyblog.conf /etc/nginx/sites-enable/myblog.conf

执行nginx -t 出来如下成功

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果不成功在不修改默认log的情况下

nginx的log查看

查看nginx 默认log: /var/log/nginx/error.log

运行时候可以使用tail -100f /var/log/nginx/error.log进行查看


网页浏览时,无法打开static的内容(即error.log 中13: Permission denied 错误)

另外nginx默认用户为www-data,可能会导致权限不足,因为很有可能你是用root权限操作的

那么需要在 /etc/ngixn/nginx.conf 中的user www-data改成root,或者其他有权限操作的用户



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值