发布django项目

发布django 项目三个步骤

  1. 本地新建djang项目正常运行
  2. 配置uwsgi
  3. 配置nginx
  4. 同步依赖模块
  5. 上传项目到服务器

新建django项目

1、setting.py

#1. 允许任意IP访问
ALLOWED_HOSTS = ['*']

# 2. 导入自己的app
INSTALLED_APPS = [
   ....
    'users'
]
# 3.删除sqlite3的配置或配置连接mysql
# 4. 语言,时区.静态资源配置
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False


STATIC_URL = '/static/'  # 相对路径方式查找
STATICFILES_DIRS = (      # 通过项目绝对路径找
    os.path.join(os.path.join(BASE_DIR, 'static')),
)

2、配置uwsgi

#添加配置选择
[uwsgi]
#配置和nginx连接的socket连接
socket=127.0.0.1:8000
#配置项目路径,项目的所在目录
chdir=/data/wwwroot/mysite01/
#配置wsgi接口模块文件路径,也就是wsgi.py这个文件所在的目录名
wsgi-file=mysite01/wsgi.py
#配置启动的进程数
processes=4
#配置每个进程的线程数
threads=2
#配置启动管理主进程
master=True
#配置存放主进程的进程号文件
pidfile=uwsgi.pid
#配置dump日志记录
daemonize=uwsgi.log

uwsgi操作指令

# 启动
uwsgi  --ini  uwsgi.ini
显示 [uWSGI] getting INI configuration from uwsgi.ini 表明uwsgi运行成功
# # 
可能通过ps -ef|grep uwsgi   查看确认是否uwsgi启动.
#停止运行uwsgi,通过包含主进程编号的文件设置停止项目
uwsgi --stop uwsgi.pid
#重启uwsgi
uwsgi --reload uwsgi.pid

3.上传项目到/data/wwwroot/

# 1. 命令启动项目查看是否能正常运行
cd /data/my_env02/bin
source activate             #激活虚拟环境
# 2. 进入项目
cd /data/wwwroot/mysite01
python manage.py runserver  

# 3. 新打开SSH客户端,内网访问8000
curl 127.0.0.1:8000 #成功表示项目运行良好

写nginx的配置文件

# nginx的yum安装方式默认安装好的路径为/etc/nginx
# 在/etc/nginx/conf/中先备份一下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  127.0.0.1:80; #改为自己的域名,没域名修改为127.0.0.1:80
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8000;  #端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT mysite01.wsgi;  #wsgi.py所在的目录名+.wsgi
           uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite01/; #项目路径
           
        }
        location /static/ {
        alias /data/wwwroot/mysite01/static/; #静态资源路径
        }
    }
}

# 执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令:

# 重新启动nginx
systemctl reload nginx

4.启动项目

1. runserver指令启动uwsgi测试项目是否正常访问!
2. 启动uwsgi
3. 检查nginx配置语法
4. 启动ngxin
5. 检查:端口. 内网访问,外网访问

uwsgi启动8000

# 1. 进入虚拟环境,激活
cd /data/env/my_env02/bin
source activate
# 2. 在虚拟环境中进入项目,启动uwsgi
cd /data/wwwroot/mysite01
uwsgi --ini uwsgi.ini  #启动
# 显示: [uWsgi] getting INI  configuration from uwsig.ini 表示成功
# 端口8000是否启动
netstat -atunp   #8000是启动的

启动nginx的80端口

# 1. 进入nginx目录
cd /usr/local/nginx/sbin
# 2. 检测语法
./nginx -t  #
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# 3. 启动
./nginx   #启动
./nginx -s reload #重启
./nginx -s stop #停止
# 4. 检测80
netstat -atunp 
# 5. 本地测试
curl  127.0.0.1:80
# 6. 外网测试
http://172.16.45.53:80  # 

#7. 通过域名访问  
http://www.xxx.com

5、阿里云服务器开放端口

网络与安全--->安全组--->创建一个安全组--->配置![]![]

必须手动打开某些端口:注意端口分为入口和出口

posted @ 2020-11-26 20:47  Ðs*  阅读(198)  评论(0编辑  收藏  举报