发布django项目
发布django 项目三个步骤
- 本地新建djang项目正常运行
- 配置uwsgi
- 配置nginx
- 同步依赖模块
- 上传项目到服务器
新建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、阿里云服务器开放端口
网络与安全--->安全组--->创建一个安全组--->配置![]![]
必须手动打开某些端口:注意端口分为入口和出口