django在服务器上部署(转)

django在服务器上部署(转)

目录

一、安装python

1、下载依赖包

2、下载python包

3、解压python包

4、切换到python包路径

5、编译安装

6、创建软链接

二、安装django

三、安装uwsgi

1、安装uwsgi

2、创建软链接

3、测试uwsgi和django的契合

4、关闭防火墙和selinux

5、使用uwsgi的命令启动django

6、使用uwsgi脚本启动django

四、安装nginx

1、下载nginx包

2、解压包

3、切入解压目录

4、编译安装

5、创建软链接

6、启动nginx测试

7、配置nginx访问uwsgi参照(nginx/conf/nginx.conf)

8、关闭nginx和uwsgi

9、先启动uwsgi然后启动nginx


 

 

一、安装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文件,内容为:

  1.  
     
  2.  
    [uwsgi]
  3.  
     
  4.  
    chdir=/opt/QShop
  5.  
    module=QShop.wsgi:application
  6.  
    socket=/opt/script/uwsgi.sock
  7.  
    workers=5
  8.  
    pidfile=/opt/script/uwsgi.pid
  9.  
    http=192.168.254.130:9000
  10.  
    static-map=/static=/opt/QShop/static
  11.  
    uid=root
  12.  
    gid=root
  13.  
    master=true
  14.  
    vacuum=true
  15.  
    enable-threads=true
  16.  
    thunder-lock=true
  17.  
    harakiri=30
  18.  
    post-buffering=4096
  19.  
    daemonize=/opt/script/uwsgi.log
  20.  
    ~

上面代码的分别对应的是:

[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)

  1.  
    http {
  2.  
    include mime.types;
  3.  
    default_type application/octet-stream;
  4.  
     
  5.  
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  6.  
    '$status $body_bytes_sent "$http_referer" '
  7.  
    '"$http_user_agent" "$http_x_forwarded_for"';
  8.  
     
  9.  
    #access_log logs/access.log main;
  10.  
     
  11.  
    sendfile on;
  12.  
    #tcp_nopush on;
  13.  
     
  14.  
    #keepalive_timeout 0;
  15.  
    keepalive_timeout 65;
  16.  
     
  17.  
    #gzip on;
  18.  
     
  19.  
    server {
  20.  
    listen 80;
  21.  
     
  22.  
    server_name QShop;
  23.  
     
  24.  
    charset utf-8;
  25.  
     
  26.  
    access_log logs/host.access.log main;
  27.  
     
  28.  
     
  29.  
    error_log /var/log/nginx/error.log error;
  30.  
     
  31.  
    location / {
  32.  
    include uwsgi_params;
  33.  
    uwsgi_connect_timeout 30;
  34.  
    uwsgi_pass unix:/opt/script/uwsgi.sock;
  35.  
    }
  36.  
     
  37.  
    error_page 500 502 503 504 /50x.html;
  38.  
    location = /static/ {
  39.  
    alias /opt/QShop/static;
  40.  
    index index.html index.htm;
  41.  
    }
  42.  
    }
  43.  
    }
  44.  
     

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

如果没有报错的话,应该已经完成了,可以根据设置好的地址,去浏览器访问

posted @ 2020-08-24 22:41  小周同学、  阅读(156)  评论(0)    收藏  举报