断断续续搞了两天,总算是实现了。
一 uwsgi
1. 首先,无用的是worldpress, 它默认带的apache, 会占用80端口,这一点坑了我好久, mmp
netstat -lnp|grep 80
查看占用80端口的程序, 然后 kill -9 id , netstat -lnp|grep 80, 再看一下, 还可能没杀死, 再杀, mmp
2. 在django项目的文件里新建个 blog.ini , 名字无所谓, 与manage.py同级,
在blog.ini 里写入
垃圾 : 注意不要加注释 否则报错找不到文件 mm
[uwsgi]
chdir = /data/blog # blog.ini 所在的位置
module = blog.wsgi:application # 相对chdir, django的wsgi, 所在的位置
master = true
processes = 4
harakiri = 60
max-requests = 5000
socket = 127.0.0.1:8000
pidfile = /data/blog/master.pid
daemonize = /data/blog/blog.log
vacuum = true
disable-logging = true
uid=nginx
gid=nginx
wsgi-file = /data/blog/blog/wsgi.py
然后进入到它所在的位置, 执行
[root@iz2zeczv3xrnm2jx6aayhxz blog]# uwsgi --ini blog.ini
执行它,然后 ps -aux | grep uwsgi 查看运行情况, 要是只用一个进程, 就凉凉了。
二 配置nginx, 这的坑太多了, 按照网上教程搞了很多, 都失败了, 自己也配置了很多, 也不知道那些是有用的操作,那些是没必要的,总之, 总算跑起来了。
首选我没有sites-available,和 sites-enabled两个文件夹, 在/etc/nginx 里新建两个文件夹, 然后在nginx.conf 里的http {} 里加了
include /etc/nginx/sites-enabled/*; 这一句。
然后在sites-available里,新建个叫blog.conf的文件,写入
server {
listen 80;
server_name blog;
charset utf-8;
error_log /data/blog/blog_error.log;
client_max_body_size 75M;
location /static {
alias /data/blog/static;
}
location /media {
alias /data/blog/media;
}
location / {
uwsgi_pass 127.0.0.1:8000;
include /etc/nginx/uwsgi_params;
}
}
然后进入到 /etc/nginx
执行 ln -s /etc/nginxsites-available/blog.conf /etc/nginx/sites-enabled/blog.conf 创建软连接
因为不知道,哪出现问题了, 我又在nginx.conf.default 里加了上面的sever配置
然后进入到了,ngnix 的位置
执行service nginx restart
访问自己的ip,总算成功了
补充, 按上面的配置, 访问admin, 会出现没有样式,
还要进一步修改配置,
在和static 同级下, 新建个文件, 我叫它 nginx_static,
然后打开django 的settings文件 ,加下一句
STATIC_ROOT='/home/myweb/nginx/static/' #添加收集静态文件的目录
修改nginx的配置
location /static {
alias /data/blog/nginx_static;
}
然后执行, 收集静态文件, 包括admin和其他所有的静态文件都会被收集到指定的位置,
python manage.py collectstatic
重启nginx, ok
service nginx restart
补充:
正常关闭uwsgi uwsgi --stop /路径/master.pid
重新加载uwsgi uwsgi --reload /路径/master.pid
强制关闭全部进程 ps -aux | grep uwsgi | awk '{print $2}' | xargs kil
我修改了一部分views代码, 发现不能实时更新, 执行了service nginx restart, 只有前端有更新,
又执行了uwsgi --reload /路径/master.pid, 可以了, 引以为戒 还必须先重启nginx