django在服务器上部署(转)
django在服务器上部署(转)
目录
7、配置nginx访问uwsgi参照(nginx/conf/nginx.conf)
一、安装python
1、下载依赖包
先检测当前服务器的yum是否可用
yum可用的情况下,安装python需要的依赖包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
2、下载python包
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
如果已经有包的话,可以传到服务器然后直接解压
3、解压python包
tar -Jxvf Python3.6.2.tar.xz
4、切换到python包路径
cd Python3.6.2
./configure prefix=/usr/local/python3
5、编译安装
make && make install
6、创建软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
给python创建软链接的时候,可以顺便把pip3也创建软链接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
二、安装django
pip3 install pymysql && pip3 install pillow && pip3 install django==2.1.5 && pip3 install django-ckeditor
三、安装uwsgi
1、安装uwsgi
pip3 install uwsgi
2、创建软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
3、测试uwsgi和django的契合
uwsgi

4、关闭防火墙和selinux
systemctl stop firewalld
setenforce
setenforce 0
5、使用uwsgi的命令启动django
uwsgi --http 192.168.254.130: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
如果没有报错的话,应该已经完成了,可以根据设置好的地址,去浏览器访问

                
            
        
浙公网安备 33010602011771号