django+uwsgi+nginx部署
2018-03-04 13:24
253 查看
在前面的文章曾记录过如何在同一局域网中访问Django开发的网站,现在写一下如何将django和nginx+uwsgi放到一起,下面就用我写的一个微信公众号的目录为例吧。
创建的项目名:weixin
app:weixin_app
位置:/root/weixin
[uwsgi]
socket = :8000 #端口号
chdir = /root/weixin #django项绝对路径
module = weixin.wsgi #wsgi.py文件在项目中的位置
master = true #允许主进程存在
processes = 4 #进程数
vacuum = true #当服务器退出的时候自动清理环境,删除unix socket文件和pid文件
保存之后可以在测试一下是否成功,在终端与行
uwsgi --ini /root/weixin/weixin/uwsgi.ini
然后在浏览器打开127.0.0.1:8000,是否可以打开自己的项目,如果可以代表uwsgi配置完毕。
server { listen 80 default_server; listen [::]:80 default_server; server_name 127.0.0.1 120.79.129.221; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { # 同uwsgi连接 include uwsgi_params; # uwsgi.ini中开放端口 uwsgi_pass 127.0.0.1:8000; }
}
保存后启动uwsgi(uwsgi --ini /root/weixin/weixin/uwsgi.ini),然后启动nginx(systemctl start nginx)。
然后在浏览器输入自己的ip地址或者域名即可打开网站。
首先,修改django的setting.py文件
DEBUG = False #关闭开发者功能
STATIC_ROOT = os.path.join(BASE_DIR, '../weixin/static') #‘../weixin/static’是你想保存把网站中用的css和js保存的位置,可以自己定义修改完setting.py后保存,然后在终端中运行
然后,修改urls.py,添加
from django.conf import settings
from django.conf.urls.static import static
如此一来当即在部署为生产环境时,只需要吧DEBUG改为False,Django就不会去处理
最后再次配置nginx.conf
在server中添加
location /static/ {
autoindex on;
alias /root/weixin/static/; # 静态文件存放的位置
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
还有最容易被忽视的一个步骤修改nginx.conf 顶部uesr,修改为:
user root
保存nginx.conf后
重新启动uwsgi和nginx,这时就可以打开经过css修饰的网页了。
创建的项目名:weixin
app:weixin_app
位置:/root/weixin
uwsgi
在/root/weixin/weixin/中新建一个文件uwsgi.ini[uwsgi]
socket = :8000 #端口号
chdir = /root/weixin #django项绝对路径
module = weixin.wsgi #wsgi.py文件在项目中的位置
master = true #允许主进程存在
processes = 4 #进程数
vacuum = true #当服务器退出的时候自动清理环境,删除unix socket文件和pid文件
保存之后可以在测试一下是否成功,在终端与行
uwsgi --ini /root/weixin/weixin/uwsgi.ini
然后在浏览器打开127.0.0.1:8000,是否可以打开自己的项目,如果可以代表uwsgi配置完毕。
nginx
配置nginx.conf(位置可以通过find / -name nginx.conf查找),vim nginx.confserver { listen 80 default_server; listen [::]:80 default_server; server_name 127.0.0.1 120.79.129.221; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { # 同uwsgi连接 include uwsgi_params; # uwsgi.ini中开放端口 uwsgi_pass 127.0.0.1:8000; }
}
保存后启动uwsgi(uwsgi --ini /root/weixin/weixin/uwsgi.ini),然后启动nginx(systemctl start nginx)。
然后在浏览器输入自己的ip地址或者域名即可打开网站。
静态文件的处理
如果你的网站可以打开了但是如果你打开admin会发现页面无法加载css,这时我们就需要对django的静态文件进行处理首先,修改django的setting.py文件
DEBUG = False #关闭开发者功能
STATIC_ROOT = os.path.join(BASE_DIR, '../weixin/static') #‘../weixin/static’是你想保存把网站中用的css和js保存的位置,可以自己定义修改完setting.py后保存,然后在终端中运行
python3 manager.py collectstatic,将django中需要的css和js等数据收集后存放到static_root定义的文件夹中。
然后,修改urls.py,添加
from django.conf import settings
from django.conf.urls.static import static
if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)这里的意思是在DEBUG=True时,会解析
/static/文件,文件存放的位置是第二个参数。
如此一来当即在部署为生产环境时,只需要吧DEBUG改为False,Django就不会去处理
static了。
最后再次配置nginx.conf
在server中添加
location /static/ {
autoindex on;
alias /root/weixin/static/; # 静态文件存放的位置
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
还有最容易被忽视的一个步骤修改nginx.conf 顶部uesr,修改为:
user root
保存nginx.conf后
重新启动uwsgi和nginx,这时就可以打开经过css修饰的网页了。
相关文章推荐
- nginx+uwsgi 部署django
- Nginx+uwsgi部署django
- uwsgi+nginx部署Django
- django1.8+uwsgi+nginx+supervisord部署项目笔记
- Django + Uwsgi + Nginx 实现生产环境 项目部署
- ngingx+uwsgi+django项目部署nginx找不到django应用
- Nginx+uWSGI+Django+Python在Linux上的部署
- nginx+uwsgi部署django
- Ubuntu+django+Nginx+uwsgi+supervisor部署
- ubuntu16.04使用nginx、uwsgi部署django应用
- Django 部署 Python3+Django+uWSGI+Nginx(含处理Nginx返回400 Bad Request问题、防火墙管理)
- Nginx+uWSGI+Django方法部署Django应用2
- nginx+uwsgi来部署Django
- Ubuntu+nginx+uwsgi部署Django项目
- NGINX+UWSGI部署生产的DJANGO代码
- Django 一机多网站部署:Debian + Nginx + uWSGI
- nginx1.4.7+uwsgi+django1.9.2+gridfs 在ubuntu14.0.4上部署
- django项目在uwsgi+nginx上部署遇到的坑
- centos7下nginx+uwsgi部署django项目问题记录
- Nginx+uWSGI部署Django应用