Django+Nginx项目部署上线

利用nginx +uwsgi完成django项目上线,系统环境采用ubantu系统, python3,django==1.1

 

1. 静态文件

当Django运行在生产模式时,将不再提供静态文件的支持,需要将静态文件交给静态文件服务器,Django提供了收集静态文件的方法。先在配置文件中配置收集之后存放的目录.

在settings文件中添加静态文件目录:

  TATIC_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'front_end_pc/static')

然后执行收集命令

   python manage.py collectstatic

安装nginx服务器

  sudo apt install nginx

打开Nginx的配置文件

  sudo vim /etc/nginx/sites-available/default

在server部分中配置

   server {
         listen       80;
         server_name  www.aaaa.com;

        location / {
             root   /home/python/Desktop/front_end_pc;
             index  index.html index.htm;
         }
  }

重启Nginx服务器

  sudo service nginx restart

2. 动态接口

     修改配置文件settings中

  ALLOWED_HOSTS = [...,  'www.aaaa.com'] 

  CORS_ORIGIN_WHITELIST = (
    '127.0.0.1:8080',
    'localhost:8080',
    'www.aaaa.com:8080',
    'api.aaaa.com:8000',
)

 

安装uwsgi服务器

   pip install uwsgi

在项目目录/meiduo_mall 下创建uwsgi配置文件 uwsgi.ini

[uwsgi]
#使用nginx连接时使用,Django程序所在服务器地址
socket=127.0.0.1:8001
#直接做web服务器使用,Django程序所在服务器地址
#http=127.0.0.1:8001
#项目目录
chdir=/Users/delron/Desktop/项目目录
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=项目下/wsgi.py
# 进程数
processes=4
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件,因为uwsgi可以脱离终端在后台运行
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/Users/delron/.virtualenv/env

启动uwsgi服务器

   uwsgi --ini uwsgi.ini


修改Nginx配置文件,让Nginx接收到请求后转发给uwsgi服务器


     upstream xiangmu{
         server 127.0.0.1:8001;  # 此处为uwsgi运行的ip地址和端口号
         # 如果有多台服务器,可以在此处继续添加服务器地址
     }

     server {
         listen  8000;
         server_name api.aaaa.com;

         location / {
             include uwsgi_params;
             uwsgi_pass xiangmu;
         }

     }

重启nginx

 sudo service nginx restart

部署完成启动项目

进入uwsgi.ini文件目录中:

uwsgi --ini uwsgi.ini

成功!!

 
 
 
 
 











posted on 2019-08-06 17:48  琳琳琳琳琳  阅读(1085)  评论(0)    收藏  举报

导航