系统:Fedora27
参考博客:
https://www.cnblogs.com/chenice/p/6921727.html
https://blog.csdn.net/a657941877/article/details/8953233
https://segmentfault.com/q/1010000002492487
一、相关软件安装
1、安装django pip3 install django 2、安装uwsgi yum install gcc yum install pip3-devel pip3 install uwsgi 3、安装nginx yum install nginx
二、uwsgi配置
1、uwsgi配置文件路径(自定义)
├── workplace │ ├── a_blog #Django项目目录 │ │ ├── a_blog │ │ ├── aBlog #app │ │ ├── db.sqlite3 │ │ ├── manage.py │ │ ├── static │ │ └── templates │ └── script │ ├── uwsgi.ini │ ├── uwsgi.log │ ├── uwsgi.pid │ └── uwsgi.sock
2、uwsgi.ini配置内容
[root@localhost XXX]# cat workplace/script/uwsgi.ini [uwsgi] #项目目录 chdir=/home/XXX/workplace/a_blog #指定项目的application module=a_blog.wsgi:application #指定sock文件路径 socket=/home/XXX/workplace/script/uwsgi.sock #进程个数 workers=5 pidfile=/home/XXX/workplace/script/uwsgi.pid #指定IP端口 http=192.168.2.111:8000 #socket=192.168.2.111:8000 #指定静态文件 static-map=/static=/home/XXX/workplace/a_blog/static #启动uuwsgi的用户名和用户组 uid=root gid=root #启动主进程 master=true #当服务停止时自动移除unix Socket和pid文件 vacuum=true #序列化接受的内容 thunder-lock=true #启动线程 enable-threads=true #设置中断时间 harakiri=30 #设置缓存 post-buffering=4096 #设置日志目录 daemonize=/home/XXX/workplace/script/uwsgi.log
3、启动uwsgi服务
uwsgi --ini /home/XXX/workplace/script/uwsgi.ini
三、nginx配置
1、修改 /etc/nginx/nginx.conf
#user nginx; 注释 user root; 新增
2、在/etc/nginx/conf.d下新增配置文件site1.conf
touch /etc/nginx/con.f/site1.conf
3、site1.conf内容
server{ listen 80; server_name 192.168.2.111; access_log /var/log/nginx/access.log main; charset utf-8; gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; #error_page 404 /404.html #error_page 500 502 503 504 /50x.html location / { include uwsgi_params; uwsgi_connect_timeout 150; # uwsgi_pass 192.168.2.111:8000; uwsgi_pass unix:/home/XXX/workplace/script/uwsgi.sock; # uwsgi_param UWSGI_PYHOME /home/XXX/workplace/site1; # uwsgi_param UWSGI_SCRIPT site1.wsgi; # uwsgi_param UWSGI_CHDIR /home/XXX/workplace/site1/site1; } location /static { root /home/XXX/workplace/site1/static/; index index.html index.htm; } }
4、启动nginx
service nginx start
四、遇到的错误
1、访问目标地址时出现502错误提示
查看 /var/log/nginx/error.log 错误信息为 (13: Permission denied) 解决方案: vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq! #保存退出 setenforce 0 #使配置立即生效
2、DisallowedHost at /
Invalid HTTP_HOST header: ‘127.0.0.1:8000’. You may need to add ‘127.0.0.1’ to ALLOWED_HOSTS.
添加127.0.0.1 到Django项目的 settings -> ALLOWED_HOSTS
3、Django的admin式样丢失
在settings中添加: STATIC_ROOT = os.path.join(BASE_DIR,'static') 执行: python3 manage.py collectstatic