当前位置 博文首页 > wang785994599的博客:django+uwsgi+nginx远程服务器简单部署
?
安装nginx,mysql,redis。redis默认配置即可,为了可以远程连接数据库需要进行以下操作(root用户为例):
grant all on root.* to 'root'@'%';
flush privileges
修改mysql配置文件:
vim /etc/mysql/mysql.conf.d/mysqld.cnf
将此行注释。
在uwsgi.py所在目录下创建uwsgi.ini并编辑
[uwsgi]
#使用nginx连接时使用,Django程序所在服务器地址
socket=127.0.0.1:8001
#直接做web服务器使用,Django程序所在服务器地址
#http=10.211.55.2:8001
#项目目录
chdir=/data/server/项目
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=path/wsgi.py
# 进程数
processes=4
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/data/virtual/venv
nginx配置文件一般在:/etc/nginx/nginx.cnf
#前后端分离,使用Nginx作为静态文件服务器,静态数据直接返回
server {
listen 80;
server_name localhost;
location / {
root /path/静态文件夹;
index index.html index.htm;
}
location /xadmin {
include uwsgi_params;
uwsgi_pass mywebapp;
}
location /ckeditor {
include uwsgi_params;
uwsgi_pass mywebapp;
}
}
#动态数据
upstream mywebapp {
#uwggi运行端口,后端端口
server 127.0.0.1:8001;
}
server {
#nginx监听端口
listen 8000;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass mywebapp;
}
}
uwsgi
#虚拟环境下安装uwsgi
pip install uwsgi
#虚拟环境下运行uwsgi
uwsgi --ini uwsgi.ini
#关闭
uwsgi --stop uwsgi.pid
#上述关闭方法经常gg
lsof -Pti ":8001"#uwsgi运行端口号,找到pid
kill pid即可
nginx操作
?
/etc/init.d/nginx start #启动
/etc/init.d/nginx stop #停止
/etc/init.d/nginx reload #重新加载配置
前后端分离项目,要解决跨域问题,配置文件里ALLOW_HOSTS要将域名放入。
ALLOW_HOSTS=['*']#肯定没错,生产环境要填具体的ip
跨域请求需要安装,并注册
pip install django-cors-headers
中间层设置
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
...
]
?
# CORS
CORS_ORIGIN_WHITELIST = (
'127.0.0.1:80',
'127.0.0.1:8000',
'xxx.xxx.xxx.xxx',#公网ip
)
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
cs