# settings 配置
# django项目需要配置allow_hosts=['*'],允许所有主机访问
# debug=True #返回给项目一个debug信息,暴露了项目配置信息,因此在线上要关闭
# 准备一个独立的虚拟环境
mkvirtualenv luffy_even
# 本地
pip3 freeze > requirements.py
# 服务器
pip3 install -r requirements.py
1.启动linux的数据库,创建对应的数据库,密码设置等等
create database my_project;
2.更改settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'my_project', # 数据库名
'HOST': '127.0.0.1', # 这里服务器的ip地址
'PORT': 3306, # 端口
'USER': 'root', # 用户名
'PASSWORD': 'leon123', # 用户密码
}
}
3.更改允许主机
ALLOWED_HOSTS = ['*']
4.线上关闭debug,默认先用True
debug=True
1.修改配置文件nginx.conf ,写入如下配置
# 负载均衡池配置
# ip根据实际情况配置
upstream mydjango {
server 192.163.1.X:8000 weight=1;
server 192.163.1.X:8000 weight=2;
server 192.163.1.X:8000 weight=3;
}
# 虚拟主机配置
server {
listen 80;
# 域名自定义
server_name www.xxx.com;
location / {
# 注意这里是 uwsgi
uwsgi_pass mydjango;
include /opt/nginx1-12/conf/uwsgi_params;;
}
# 静态资源配置
location /static {
alias /data/static;
}
}
2.手动创建这个参数文件
# 参数只是给代理加上一些功能
# touch /opt/nginx1-12/conf/proxy_params
# 写入信息
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
pip3 install uwsgi
uwsgi --http :8888 --module MyProject.wsgi
# uwsgi可以热加载项目
# --py-autoreload是告诉uwsgi自动重启加载django项目
uwsgi --http :9999 --module mycrm.wsgi --py-autoreload=1
# 补充
# 通过uwsgi命令启动python应用
uwsgi --http 0.0.0.0:8888 --wsgi-file test1.py
--http 指明是http协议
--socket 启动一个socket 链接
--wsgi-file 指明一个python应用文件
1.在项目目录下手动创建uwsgi.ini文件
touch /opt/MypPoject/uwsgi.ini
2.写入如下配置
[uwsgi]
# 项目的绝对路径,定位到项目的第一层
chdir = /opt/MyProject
# 指明项目的wsgi文件路径
module = MyProject.wsgi
# 指明你的虚拟解释器的路径(在虚拟环境下 pwd)
home = /root/Envs/luffy_even
# 指明通过uwsgi,启动多少个进程
processes = 5
# 非常重要
# 非常重要
# 非常重要
# 如果你已经配置了nginx(启动了nginx服务,配置了uwsgi_pass),请用这个socket连接
socket = 0.0.0.0:8000
# 如果你没用nginx,想通过uwsgi直接启动web服务,指明http协议
# http = 0.0.0.0:9999
#在退出uwsgi环境后,清空环境变量
vacuum = true
1.通过命令,收集整个项目所有的静态文件,放入到/opt/static/
# settings 添加
STATIC_ROOT='/opt/static/'
2.执行命令
python3 manage.py collectstatic
3.此时 MyProject 的所有静态文件,都跑到/opt/static/底下了
ls /opt/static/
admin css imgs js plugins....
#如果你已经配置了nginx,请用这个socket连接
socket = 0.0.0.0:8000
uwsgi --ini uwsgi.ini
/opt/nginx-12/sbin/nginx
# 注意,请退出虚拟环境,在宿主机环境下,安装 supvervisor
# supvervisor 通过 python2.7 安装
yum install python-setuptools
# 安装软件
easy_install supervisor
# 使用supervisor命令,常用命令如下
# 生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
vim /etc/supervisord.conf
[program:myproject]
# 启动uwsgi的命令就是这个
command=/root/Envs/nbcrm/bin/uwsgi --ini /opt/MyProject/uwsgi.ini
# 自动启动uwsgi,挂了之后自动加载
autorestart=true
# 服务端命令,用于启动这个服务
supervisord -c /etc/supervisord.conf
# 也可以通过命令交互式的管理uwsgi
# 服务端启动后,通过命令管理软件
supervisorctl start myproject
supervisorctl stop myproject
supervisorctl status myproject
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。