在服务器上部署django流程
一、安装python点击此处了解详情二、安装django(Python3.8.2)pip3 install pymysql && pip3 install pillow && pip3 install django==3.0.4 && pip3 install django-ckeditor三、安装uwsgi1、由于uWSGI由EPEL提供,因此无需
一、安装python
二、安装django(Python3.8.2)
pip3 install pymysql && pip3 install pillow && pip3 install django==3.0.4 && pip3 install django-ckeditor
三、安装uwsgi
1、使用pip进行安装
pip install -i https://pypi.doubanio.com/simple uwsgi
2、创建软链接
ln -s /usr/local/python38/bin/uwsgi /usr/bin/uwsgi
3、测试uwsgi和django的契合
uwsgi
4、关闭防火墙和selinux
systemctl stop firewalld
setenforce
setenforce 0
如果在使用setenforce命令设置selinux状态的时候出现提示:setenforce: SELinux is disabled
说明selinux已经被彻底的关闭,需要重新开启selinux
vi /etc/selinux/config
更改为:SELINUX=1 ,重启linux,开启selinux
5、使用uwsgi的命令启动django
uwsgi --http 49.233.12.121:8000 --file /opt/QShop/wsgi.py --static-map=/static=static
–http ip端口
–file uwsgi文件位置 /opt/QShop/是django项目的路径
–static-map 静态文件路由
可在浏览器输入地址,打开项目
6、使用uwsgi脚本启动django
这个操作需要nginx的配合,所以需要安装nginx,但是准备工作可以先做
在/opt下创建script目录,在script目录下创建uwsgi.ini文件,内容为:
[uwsgi]
chdir=/opt/QShop
module=QShop.wsgi:application
socket=/opt/script/uwsgi.sock
workers=5
pidfile=/opt/script/uwsgi.pid
http=192.168.254.130:9000
static-map=/static=/opt/QShop/static
uid=root
gid=root
master=true
vacuum=true
enable-threads=true
thunder-lock=true
harakiri=30
post-buffering=4096
daemonize=/opt/script/uwsgi.log
~
上面代码的分别对应的是:
[uwsgi] 声明uwsgi
chdir #项目目录
module #指定项目的application,尤其注意的是这个!!!下面会提到
socket #指定sock的文件路径
workers #进程个数
pidfile #pid文件
http #指定IP端口
static-map #指定静态文件
uid #用户
gid #组
master #启用主进程
vacuum #自动移除unix Socket和pid文件当服务停止的时候
enable-threads #启用线程
thunder-lock #序列化接受的内容,如果可能的话
harakiri #设置自中断时间
post-buffering #设置缓冲
daemonize=/opt/script/uwsgi.log #设置日志目录
这个东西是wsgi!!!!这个文件是python创建的,就叫wsgi,而不要自己改成uwsgi!!!
四、安装nginx
1、下载nginx包
Wget http://nginx.org/download/nginx-1.12.2.tar.gz
2、解压包
tar -zxvf nginx-1.12.2.tar.gz
3、切入解压目录
cd nginx-1.12.2
4、编译安装
./configure \
出现了>,然后再按一下enter
make && make install
5、创建软链接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
6、启动nginx测试
nginx
然后进网页,查看是否启动了
7、配置nginx访问uwsgi参照(nginx/conf/nginx.conf)
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name QShop;
charset utf-8;
access_log logs/host.access.log main;
error_log /var/log/nginx/error.log error;
location / {
include uwsgi_params;
uwsgi_connect_timeout 30;
uwsgi_pass unix:/opt/script/uwsgi.sock;
}
error_page 500 502 503 504 /50x.html;
location = /static/ {
alias /opt/QShop/static;
index index.html index.htm;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; 日志的格式
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name Qshop; 服务的名称
charset utf-8; 编码格式
access_log logs/host.access.log main; 访问日志
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_log /var/log/nginx/error.log error; 错误日志,默认没有,需要手动创建
location / {
include uwsgi_params; 加载uwsgi_params
uwsgi_connect_timeout 30; 连接的超时时间 不要加冒号不要加冒号不要加冒号
uwsgi_pass unix:/opt/script/uwsgi.sock; uwsgi.sock通讯的文件地址
}
location = /static/{
alias /opt/Qshop/static; 静态文件的目录
index index.html index.htm;
}
8、关闭nginx和uwsgi
pkill -9 uwsgi
pkill -9 nginx
9、先启动uwsgi然后启动nginx
uwsgi --ini /opt/script/uwsgi.ini
nginx
如果没有报错的话,应该已经完成了,可以根据设置好的地址,去浏览器访问
更多推荐
所有评论(0)