zoukankan      html  css  js  c++  java
  • 在centos上使用nginx+uwsgi部署django项目

    记录一下在centos服务器上部署django项目的流程和值得注意的点,以便以后查阅。这里,我已经在windows本地完成了django项目的编写,并能成功运行和访问,项目使用的是Mysql数据库。在centos上,我们准备使用nginx和uwsgi来部署项目。

    1.准备工作

    服务器上需要先安装nginx、mysql,python相关的库有django、pymysql、pillow、uwsgi,其他的根据自己需要安装即可。

    先在服务器上创建需要的Mysql数据库,再将本地的django项目拷贝到服务器,修改settings.py中的数据库相关配置,然后尝试执行
    python manage.py runserver
    先保证项目能正常运行。

    若项目能正常运行,然后执行
    python manage.py makemigrations
    python manage.py migrate
    以完成相关数据表的迁移和创建。

    若需要迁移数据库中的数据,可以在windows上打开cmd,然后执行
    mysqldump -u root -p 数据库名 > backup.sql
    然后在服务器上执行
    mysql -u root -p 数据库名 < backup.sql

    2.uwsgi配置

    在项目的根目录(即manage.py所在目录)下创建 uwsgi.ini 文件,在文件中添加如下配置:

    [uwsgi]
    #配置和nginx连接的socket连接
    socket=127.0.0.1:8997        
    #项目根目录,根据自己情况设置 
    chdir=/home/dj-blog/myblog/   
    #wsgi.py文件路径,根据自己情况设置
    wsgi-file=myblog/wsgi.py   
    #进程数   
    processes=4  
    #每个进程的线程数                 
    threads=2        
    #配置启动管理主进程             
    master=True        
    #配置存放主进程的进程号文件           
    pidfile=uwsgi.pid    
    #配置dump日志记录         
    daemonize=uwsgi.log     
    

    然后启动uwsgi:
    uwsgi --ini uwsgi.ini
    使用 ps -ef | grep uwsgi 可以查看uwsgi是否成功运行。

    3.nginx配置

    先将nginx原来的配置文件备份下:
    cd /usr/local/nginx/conf/
    cp nginx.conf nginx.conf.bak
    然后修改nginx.conf配置文件为如下:

    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        server {
            listen 80;
            server_name  www.xxx.cn;         #改为自己的域名,没域名修改为 127.0.0.1:80
            charset utf-8;
            location / {
               include uwsgi_params;
               uwsgi_pass 127.0.0.1:8997;                     #端口要和uwsgi里配置的一样
               uwsgi_param UWSGI_SCRIPT myblog.wsgi;          #wsgi.py所在的目录名+.wsgi
               uwsgi_param UWSGI_CHDIR /home/dj-blog/myblog/; #项目根目录
               
            }
            location /static/ {
            alias /home/dj-blog/myblog/static/; #静态资源路径
            }
        }
    }
    

    然后便可以启动nginx服务器:
    nginx

    4.最后的工作

    修改settings.py中的相关设置如下:

    DEBUG = False 
    ALLOWED_HOSTS = ['*']
    

    将服务器防火墙上的80端口打开:
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    将服务器安全组中的80端口放行:

    然后重启相关服务:
    uwsgi --reload uwsgi.pid
    nginx -s reload
    这时,应该能在windows本地的浏览器上使用域名或服务器的ip地址访问django项目了。

    由于本篇博客是在项目已经全部部署完成后边回忆边写的,难免有所疏漏之处,如有问题还请参考其他文章。

  • 相关阅读:
    Leetcode264. Ugly Number II丑数2
    Leetcode221. Maximal Square最大正方形
    223. Rectangle Area
    Leetcode216. Combination Sum III组合总数3
    Leetcode200. Number of Islands岛屿的个数
    Leetcode199. Binary Tree Right Side View二叉树的右视图
    Leetcode179. Largest Number最大数
    从零开始学Linux系统(二)之基本操作指令
    从零开始学Linux系统(四)之Vi/Vim操作指令
    MySQL基础原创笔记(二)
  • 原文地址:https://www.cnblogs.com/qxcheng/p/13096810.html
Copyright © 2011-2022 走看看