部署环境的搭建请看此博客 https://blog.csdn.net/anifans9350/article/details/80145535
查看 nginx.conf 文件,
nginx 文件 (etc/nginx/nginx.conf) 配置:
修改 http 里面的 server:
- server {
- listen 80;
- server_name localhost;
- #charset koi8-r;
- #access_log /var/log/nginx/host.access.log main;
- access_log /var/log/nginx/myweb_access.log;
- error_log /var/log/nginx/myweb_error.log;
- client_max_body_size 75M;
- location / {
- include uwsgi_params;
- #这行指定 uwsgi 开放的数据交换接口
- uwsgi_pass 127.0.0.1:8090;
- #这里与配置 uwsgi 的 ini 文件中 module 内容一致
- uwsgi_param UWSGI_SCRIPT ibook.wsgi;
- #这里与配置 uwsgi 的 ini 文件中 chdir 内容一致
- uwsgi_param UWSGI_CHDIR /root/ibook;
- }
- location ^~ /static/ {
- root /root/book/;
- #这行指定静态文件的搜索目录, localhost/static/test.CSS => /home/book/static/test.css
- #注意, 这里 location 行中指定的地址也会在转换后的地址中
- }
- }
注意 location 的 static 配置, 我的项目放在 root 目录, 所以可能出现权限问题, 也就是部署环境后, 访问静态图片会出现 403, 解决就是在 nginx.conf 文件的开始处, 把
user nginx;
改成
user root;
这样就不会出现 403 的问题, 如果还是不能访问, 尝试给项目文件加权限
chmod 777 项目文件夹
uwsgi 配置:
在项目根目录新建文件 test_proj.ini, 内容为
- # start_proj.ini file
- [uwsgi]
- # Django-related settings
- # uwsgi 的对外 socket 接口, nginx 将通过该接口与 uwsgi 做数据交换, 因为与 nginx 同在一个服务器内, 不需要在防火墙上对端口 8090 做访问许可
- socket = 127.0.0.1:8090
- # the base directory (project full path)
- # 本项记录 Django 对象工程的完整路径
- chdir = /root/book
- # Django s wsgi file
- # 本项指示 uwsgi.py 文件的位置, 其位于 Django 工程目录下有个与工程名同名的子文件夹内 ( 设置方式为 文件夹名. wsgi )
- module = book.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
- # pidfile for record run pid
- pidfile=pid.uwsgi
- # run process background and save log to daemonize
- daemonize = UWSGI.log
启动时切换到项目根目录下, 启动命令
uwsgi --ini test_proj.ini
之后启动 nginx
systemctl start nginx
settings.py 配置:
- DEBUG = False
- # 添加域名
- ALLOWED_HOSTS = ['*']
静态文件配置相关:
- # 静态文件 cs/js
- STATIC_URL = '/static/'
- STATICFILES_DIRS = (
- os.path.join(BASE_DIR, 'book','static'), #book 为项目名称
- )
- STATIC_ROOT = (
- os.path.join(BASE_DIR, 'static').replace('\\','/')
- )
- # 上传图片
- MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
- MEDIA_URL = '/media/'
- STATICFILES_FINDERS = (
- "django.contrib.staticfiles.finders.FileSystemFinder",
- "django.contrib.staticfiles.finders.AppDirectoriesFinder"
- )
来源: http://www.bubuko.com/infodetail-2615175.html