Django+uWSGI+Nginx+Python3部署

1、公网访问配置

我们需要在浏览器中打开链接完成项目测试,由于不是本机测试,所以我们需要通过公网访问测试,在setting.py中修改输入:

DEBUG = False 
ALLOWED_HOSTS = ['*']

2、测试

>> python manage.py runserver 0.0.0.0:8888

成功运行后在浏览器中输入:http://IP:8888 进行测试,可以进行正常功能即可进行下一步。测试后按ctrl+c关闭测试进程

3、部署uWSGI服务器

  1>安装

  在命令行输入:

  >> sudo pip install uwsgi

  2>测试:

   在本地写好如下的测试代码命名为 test.py,把文件用Xftp传到云主机任意目录下:

  def application(env, start_response):
      start_response('200 OK', [('Content-Type','text/html')])
      return ["success!"] 

  在命令行输入:

  >> uwsgi --http :8000 --wsgi-file test.py

  在浏览器中打开:http://IP:8000 ,若出现“success!”则安装测试成功

  3>配置文件

  在manage.py同级的目录下创建uwsgi.ini文件,写下如下内容:

  [uwsgi]
  # ****注意====>使用nginx连接时使用
  socket=127.0.0.1:8000

  # 直接做web服务器使用
  # http=127.0.0.1:8000

  # 项目目录
  chdir=/home/python/Desktop/django_class_info/class_info

  # 项目中wsgi.py文件的目录,相对于项目目录
  wsgi-file=class_info/wsgi.py

  processes=4
  threads=2

  # 停止服务自动删除pid文件
  vacuum=ture
  master=True
  pidfile=uwsgi.pid
  daemonize=uwsgi.log

  # 配置虚拟环境
  virtualenv=/home/python/.virtualenv/django_py3

  4>服务启动

  在命令行输入:

  >> uwsgi --ini uwsgi.ini

  出现如下结果为成功:

  

  5>服务关闭

  在命令行输入:

  >> uwsgi --stop uwsgi.pid

4、部署Ningx服务器

  1>下载

  >> wget http://nginx.org/download/nginx-1.14.0.tar.gz

  2>安装

    解压:

    >> tar -zxvf nginx-1.14.0.tar.gz

    编译:

    >> cd nginx-1.14.0/
    >> ./configure

    安装:

    >> make
    >> sudo make install

  3>服务启动

  >> sudo /usr/local/nginx/sbin/nginx 

  注意:经典报错>>>

  admin-1@ubuntu:/data/server/nginx# ./sbin/nginx -t
  ./sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file:No such file or directory

  原因:nginx默认查找库文件路径有问题

  解决:

  admin-1@ubuntu:/data/soft/nginx-1.10.2# ldd /data/server/nginx/sbin/nginx
  linux-vdso.so.1 => (0x00007ffdb9154000)
  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa59379b000)
  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa59357e000)
  libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fa593345000)
  libpcre.so.1 => not found
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa592f7c000)
  /lib64/ld-linux-x86-64.so.2 (0x0000564bfef41000)

  admin-1@ubuntu:/data/soft/nginx-1.10.2# find / -name "libpcre.so.1"
  /data/soft/pcre-8.39/.libs/libpcre.so.1
  /usr/local/lib/libpcre.so.1
  ...

  建立软连接   admin-1@ubuntu:/data/soft/nginx-1.10.2# ln -s /usr/local/lib/libpcre.so.1 /lib/x86_64-linux-gnu/
  检测:   admin-1@ubuntu:/data/soft/nginx-1.10.2# /data/server/nginx/sbin/nginx -t   nginx: the configuration file /data/server/nginx/conf/nginx.conf syntax is ok   nginx: configuration file /data/server/nginx/conf/nginx.conf test is successful

  

  4>测试

  浏览器中访问:http://127.0.0.1

  5>配置文件

  listen       80;
  server_name  localhost;

  location / {
	  #将所有的参数转到uwsgi下
	  include uwsgi_params;
	  #uwsgi的ip与端口
	  uwsgi_pass 127.0.0.1:8000;
  }

  location /static {
	  # 指定静态文件路径
	  alias /home/python/Desktop/django_class_info/class_info/static;
  }

  6>服务停止

  >> sudo /usr/local/nginx/sbin/nginx -s stop

5、服务启动

  删除文件:

  >> rm uwsgi.pid uwsgi.log

  服务启动顺序:

  >> uwsgi --ini uwsgi.ini
  >> sudo /usr/local/nginx/sbin/nginx

6、测试

浏览器中输入:127.0.0.1

  

flask+uwsgi+nginx部署

 

posted on 2018-07-17 18:42  MMoving  阅读(153)  评论(0)    收藏  举报

导航