Django(Ngnix)项目部署 负载均衡

踩过不少坑,所以一定要看清楚自己的配置,地址这些都不能有错

简单的说就是本机当Ngnix,分配客户端的请求给不同后端的服务器,解决大量并发访问服务问题

首先:

在本机与后端服务器都要先安装Uwsigi

sudo apt-get install libpython3.6-dev

pip install uwsgi

先在后端的各个服务器上操作

先进入你创建的虚拟环境下 #注意!一定要安装好项目所需要的环境

2把项目拷进去,cd 到项目文件夹里  #注意!项目不能用root用户拷进来

3 pwd  复制这个路径:

4 在这个项目目录下建立uwsgi文件 记得是项目主目录,也就是和Template等处于一个目录下,别弄错

   sudo vim uwsgi.ini

5 在里面写入

    [uwsgi]

    socket=0.0.0.0:8000

    #http=0.0.0.0:8000

    chdir=/home/gms/project  #这里就可以粘贴你复制的项目路径,一定不能错!

    wsgi-file=project/wsgi.py   #项目下的wsgi.py的路径

    processes=1   #多少个进程可自定义

    threads=2       #可自定义

    master=true

    pidfile=uwsgi.pid

    daemonize=uwsgi.log

保存退出

 

6 cd 到有seeting.py文件的目录下,也就是与你项目同名的文件,修改项目的settings.py 文件

    DEBUG=FALSE

    ALLOWED_HOSTS = ["*"]

    STATIC_ROOT=/var/www/myApp/static/

#这个路径可自定义,但要与本机创建的static目录相同,可先到本机窗口先创建此目录,在第二部分的第7条保存退出


7 确认本机创建static文件和配置好ngnix.conf文件后,把项目里的static文件里的东西迁移过去本机新创建的static文件里

 cd ..    #到达项目主目录

 python manage.py collectstatic   #执行迁移前要确定本机有没有创建好这个文件!

 

8  sudo uwsgi --ini uwsgi.ini  启动服务

 

9  sudo ps -aux | grep uwsgi   查看启动进程确定是否开启



第二部分在本机操作

本机当 Nginx,分发客户端的请求给后端的服务器

 

1 安装

  sudo apt-get install zlib1g-dev

 

2 拿下安装包,解压  #解压包可自取

链接:https://pan.baidu.com/s/1DF9MyD2Dms89Qe7dLbuAiQ 密码:i70u

tar -xzvf nginx-1.11.3.tar.gz

tar -xzvf openssl-1.0.1.tar.gz

tar -xzvf pcre-8.41.tar.gz

 

3 进入Nginx解压目录

cd /home/gms/nginxFile/nginx-1.11.3/

 

4 输入来配置环境

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gizp_static_module --with-prce=../prce-8.41 --with-openssl=../openssl-1.0.1

 

5 编译

make  

如果出现prce.h No such file or directory,就安装 sudo apt-get install libpcre3 libpcre3-dev

 负载均衡

6 安装

 sudo make install

 

7  打cd命令 回主目录,创建一个static文件,存放项目的css,js,jq等文件 注意要在分发服务器上把项目的static文件迁移过来

sudo mkdir -vp /var/www/myApp/static  #可自己命名,要与下面nginx.conf配置的相同

Sudo chmod 777 /var/www/myApp/static/   #设置文件的权限

 

 

8 配置nginx.conf 文件

vim /usr/local/nginx/conf/nginx.conf

 

内容

events {

     use epoll;

     worker_connections  1024;

  }

http {

      include       mime.types;

      default_type  application/octet-stream;

sendfile        on;

      tcp_nopush     on;

      tcp_nodelay    on;

  

      keepalive_timeout  300;

 

gzip  on;


#mycom指定负载均衡器的名称 ,可自定义,后面会调用

upstream mycom{

       server 47.106.37.80:8000 weight=1 max_fails=1 fail_timeout=300s;

 #47.106.37.80:8000  注意:这是我自己分发的后端服务器的IP和端口,记得修改

       server ztwo.top:8000 weight=2 max_fails=2 fail_timeout=300s;

#ztwo.top:8000  注意:这是我分发的后端服务器的IP和端口,记得修改

 

    }

server {

          listen       80;

          server_name  localhost 39.108.232.243:8000;

#注意39.108.232.243:8000这是自己的服务器IP与端口

  

          charset utf-8;

 

location / {

include uwsgi_params;

          uwsgi_pass mycom;  #注意:调用负载均衡器的名称,上面定义的 需要同名

         }

#配置你项目的static文件

location /static{

              alias /var/www/myApp/static/;

         }

error_page   500 502 503 504  /50x.html;

          location = /50x.html {

              root   html;

          }

}

}

 

8 启动ngnix服务

 sudo /usr/local/nginx/sbin/nginx

如果是改变了配置文件的话,再次启动服务器只要输入

 sudo /usr/local/nginx/sbin/nginx -s reload

9 查看进程确认是否开启

 sudo ps -aux | grep uwsgi


最后在浏览器直接输入自己本机的IP或者域名加路由进行访问即可

猜你喜欢

转载自blog.csdn.net/gmsgms_gms/article/details/80916561