美文网首页
多项目上线Nginx+Django+uwsgi

多项目上线Nginx+Django+uwsgi

作者: 入间 | 来源:发表于2018-06-29 16:35 被阅读0次

    本文章的前提是django项目调试已经完成

    环境配置

    • 安装nginx

      sudo apt-get install nginx

    • 安装uwsgi

      sudo apt-get install libpython3.6-dev

      pip install uwsgi

      数据库修改字符集(方便插入中文)

    修改mysql的配置文件

    cd /etc/mysql/mysql.conf.d

    sudo cp mysql.cnf mysql.cnf.bak # 修改前先备个份

    sudo vim mysql.cnf

    在[mysqld]下增加一句:

    character_set_server = utf8

    保存并重启服务

    sudo systemctl restart mysql.service #重启服务

    Nginx 配置

           include /etc/nginx/sites-enabled/*;
    
    • 配置文件

      到/etc/nginx/sites-available 下写配置文件

      cd /etc/nginx/sites-available

      复制新建一个站点配置文件

      sudo cp default your.example.com.conf

      sudo vim your.example.com.conf

      开始配置

      server {
          listen 80;
          server_name blog.19950314nina.top;
          charset     utf-8;
          client_max_body_size 75M;
      
          location /static {  # 注意静态文件路径配置 
              alias /home/guoxd/temp/myblog/;
          }
          
          location / {
              include     /etc/nginx/uwsgi_params;  #  uwsgi_params的>位置, 否则域名无>法访问, 一般与nginx默认配置目录同级
              uwsgi_pass  127.0.0.1:8000;  # 端口与uwsgi一致
          }
      }
      

      因为是多站,在这里再写一个站点配置

      sudo cp default your.example2.com.conf

      sudo vim your.example2.com.conf

      开始配置

      
      server {
          listen 80;
          server_name bt.19950314nina.top;
          charset     utf-8;
          client_max_body_size 75M;
      
          location /static {  # 注意静态文件路径配置 
              alias /home/guoxd/temp/bt/;
          }
          
          location / {
              include     /etc/nginx/uwsgi_params;  #  uwsgi_params的>位置, 否则域名无>法访问, 一般与nginx默认配置目录同级
              uwsgi_pass  127.0.0.1:8001;  # 端口与uwsgi一致
          }
      }
      

      创建存放静态文件的文件夹,先创建好,接下来会用到

      mkdir -p /home/guoxd/temp/bt

      mkdir -p /home/guoxd/temp/myblog

      到sites-enabled文件夹,创建软连接,使配置生效

      cd /etc/nginx/sites-enabled

      sudo ln -s /etc/nginx/sites-available/your.example.com.conf your.example.com.conf

      sudo ln -s /etc/nginx/sites-available/your.example2.com.conf your.example2.com.conf

    • Nginx的使用

      sudo nginx -t #对nginx配置是否正确进行测试

      nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
      nginx: configuration file /etc/nginx/nginx.conf test is successful # 输出这两句,说明配置没问题

      sudo nginx -s reload # 重启服务 修改完配置,重启后生效

    到这里nginx里的站点配置完成

    Uwsgi 配置

    我在测试时,两个django项目的路径

    /home/guoxd/testpro/project2

    /home/guoxd/testpro/project3

    • uwsgi 配置文件

    到项目目录下新建一个 uwsgi.ini 配置文件

    cd /home/guoxd/testpro/project2

    vim uwsgi.ini

    开始配置

    [uwsgi]
    # 注意  这个端口 要与 对应的站点配置中的端口一致
    socket=0.0.0.0:8001
    # 项目目录
    chdir=/home/guoxd/testpro/project2
    # wsgi 文件
    wsgi-file=project2/wsgi.py
    processes=4
    threads=2
    master=True
    pidfile=uwsgi.pid
    daemonize=uwsgi.log
    

    同理在另外的项目中也进行类似的配置, 路径与端口修改一下即可.

    到这里,uwsgi的简单配置就完成了.

    • uwsgi的使用
    uwsgi --ini uwsgi.ini  # 启动
    uwsgi --stop uwsgi.pid  # 停止
    

    Django 配置

    修改settings文件

    #在settings开头修改
    DEBUG=False
    allow = ['*']
    
    # 在settings末尾添加
    STATIC_ROOT = '/home/guoxd/temp/project2/bt' # 执行 collectstatic 时 文件路径
    STATIC_URL = '/static/'
    #把STATICFILES_DIRS注释掉
    '''
    STATICFILES_DIRS =[
       os.path.join(BASE_DIR, 'static'),
    ]
    '''
    

    收集静态文件

    python manage.py collectstatic

    收集完成后,将静态文件复制到nginx站点配置时 对应的静态文件路径下

    • 数据库

    python manage.py makemigrations

    python manage.py migrate

    在这里,记录一个mysql 导出和导入的命令

    mysqldump -u(username) -p(password) (database_name) (something).sql #导出sql数据库

    示例: mysqldump -uroot -p123 bt bt.sql

    mysql -u(username) -p(password) --database (database_name) < (something).sql # 导入数据库

    示例:mysql -uroot -p123 --database bt < bt.sql # 导入数据库

    启动

    在django项目下 启动

    uwsgi --ini uwsgi.ini
    

    相关文章

      网友评论

          本文标题:多项目上线Nginx+Django+uwsgi

          本文链接:https://www.haomeiwen.com/subject/udbayftx.html