云服务+cenos7 +nginx+uwsgi+python+django部署历程注意事项!

网上找了很多教程 都是千篇一律,有问题的始终是那几个!很难找到答案!

下面结合了网上教程和自己在部署过程中遇到的坑!

自己主要是参照自强学堂的教程!链接https://code.ziqiangxuetang.com/django/django-nginx-deploy.html

安装需要的环境包 根据上面链接安装 一般不会有问题!

主要说下配置文件

一.Django中的wsgi文件

  项目文件中的wsgi文件 django自带的那个 最好命名为.py文件 前缀随便!不然项目可能找不到

  #-*- coding: utf-8 -*-
  import os
  import sys

  #sys.path.append('/var/www/html/che')
  current_dir = os.path.dirname(__file__)
  if current_dir not in sys.path:
  sys.path.append(current_dir)

  os.environ['DJANGO_SETTINGS_MODULE'] = 'che.settings'

  #import django.core.handlers.wsgi
  from django.core.wsgi import get_wsgi_application
  #application = django.core.handlers.wsgi.WSGIHandler()
  application = get_wsgi_application()

  配置之后单独测试django项目能否正常启动

二:uwsgi 文件

  安装好uwsgi之后测试 uwsgi是否连通Django 在浏览器上测试

  uwsgi --http :8000 --chdir /var/www/html/insurance --module wsgi

  #命令解释  

    1.--http :8000 ==>> 使用uwsgi+Django时使用 浏览器输入外网ip+端口号8000进行测试!正常显示则ok

    2.  /var/www/html/insurance ==>> 项目路径 包含manage.py的那层 

    3.wsgi  ==>> django 的swgi文件 不用加前缀

  测试成功之后 配置uwsgi文件 

  touch uwsgi.ini  建在任意路径都行 复制以下内容

  [uwsgi]

  #nginx+uwsgi+Django用
  socket=127.0.0.1:8080  

  #使用Django+uwsgi测试用
  #http = :8000 
  #project dir
  chdir=/var/www/html/insurance
  #django wsgi file
  module=wsgi
  #this is python virtualenvs path
  #home=/root/.virtualenvs/blogenv
  master=true
  processes=10
  threads=2
  chmod-socket=664
  vacuum=true
  #uwsgi log file
  log-maxsize=500000000
  logto=/var/log/nginx/uwsgi.log

  新建  uwsgi_params文件

  touch uwsgi_params 复制以下

  

   uwsgi_param QUERY_STRING $query_string;
  uwsgi_param REQUEST_METHOD $request_method;
  uwsgi_param CONTENT_TYPE $content_type;
  uwsgi_param CONTENT_LENGTH $content_length;

  uwsgi_param REQUEST_URI $request_uri;
  uwsgi_param PATH_INFO $document_uri;
  uwsgi_param DOCUMENT_ROOT $document_root;
  uwsgi_param SERVER_PROTOCOL $server_protocol;
  uwsgi_param REQUSET_SCHEME $scheme;
  uwsgi_param HTTPS $https if_not_empty;

  uwsgi_param REMOTE_ADDR $remote_addr;
  uwsgi_param REMOTE_PORT $remote_port;
  uwsgi_param SERVER_PORT $server_port;
  uwsgi_param SERVER_NAME $server_name;

  

   命令启动   uwsgi --ini /var/www/html/uwsgi.ini

三:nginx配置相关

  解释下配置文件 

  进入 cd /etc/nginx/

  ls 查看文件

  几个文件解释

  

  nginx.conf     nginx主要配置文件

  default.d       默认配置文件

  conf.d         配置文件

  当启动nginx服务时  nginx首先会运行主要配置文件 

  然后加载conf.d 文件下所有.conf 结尾的文件

  在加载default.d下所有.conf 结尾的文件

  所以当我们配置时可以将我们写的配置文件放在conf.d 文件下

  配置如下

  #负载均衡转发

  upstream django {
  server 127.0.0.1:8000;
  server 127.0.1.1:8000;
  }
  server {
  listen 80;

   #ip或者域名 
  server_name ip or domain;
  charset utf-8;
  # max upload size
  client_max_body_size 75M; # adjust to taste

  #当路径为  lp/media 过来时走这段
  location /media {
  alias /var/www/html/insurance/che/static/;
  }  

  #当路径为  lp/static 过来时走这段
  location /static {
  alias /var/www/html/insurance/che/static/;

  }

  #上面一般处理静态文件

  下面处理动态访问

  location / {

  #同uwsgi一同创建的配置文件
  include /var/www/html/uwsgi_params;
  # uwsgi_pass 127.0.0.1:8000;
  uwsgi_pass django;
  }
 }

保存

先 ps aux|grep uwsgi 看看uwsgi是否处于后台运行 如果没有 则启动

命令启动   uwsgi -d --ini /var/www/html/uwsgi.ini   -d的意思是后台启动

成功之后 重启 nginx

命令启动    service nginx start(启动) restart(重启)

访问 外网ip  成功

然后添加什么开机启动 nginx uwsgi的 百度了!

  

上一篇:Pylons或TurboGears与.NET或Java


下一篇:python – 使用CherryPy的HTTPS到HTTP