运行环境:
CentOS Linux release 7.5.1804 (Core)
Python3.6.5
Django2.1.8
uwsgi:2.0.18
nginx:1.12.2
需要提前安装python具体可以看这个
使用pip安装Django
pip3 install Django==2.1.8
安装完成后创建项目
mkdir -p /opt/app/code
cd /opt/app/code
django-admin startproject demo
如果没有django-admin可能是没有软连接,安装完成后都在python目录的bin下面
这是我的目录
├── demo
│ ├── db.sqlite3
│ ├── demo
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-36.pyc
│ │ │ ├── settings.cpython-36.pyc
│ │ │ ├── urls.cpython-36.pyc
│ │ │ └── wsgi.cpython-36.pyc
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── manage.py
└── uwsgi.ini # uwsgi的配置文件
创建Django项目后可以运行一下看能否启动成功
cd demo
python3 manage.py runserver 0.0.0.0:8000
下面出会出一堆东西
打开自己的浏览器输入自己的ip:8000 查看能否看到小火箭,看不到或者连接失败的可以查看自己的防火墙,如果关闭的话可以等一会这个启动稍微有点慢
看到这个界面说明Django没有问题 ,接下来就是uwsgi
安装uwsgi
pip3 install uwsgi
由于启动需要普通用户,所以创建普通用户uwsgi
useradd uwsgi
编写uwsgi的配置文件
[uwsgi]
socket = 127.0.0.1:9090
master = true //主进程
workers = 2 //子进程数
reload-mercy = 10
vacuum = true //退出、重启时清理文件
max-requests = 1000
limit-as = 512
buffer-size = 30000
daemonize = /var/log/uwsgi.log
创建日志文件,uwsgi不够智能不能自己创建目录。。。。。
touch /var/log/uwsgi.log
chown uwsgi /var/log/uwsgi.log
进入uwsgi用户启动uwsgi
su - uwsgi
uwsgi -ini /opt/app/Django/uwsgi.ini
启动后可以使用查看端口是否启动成功,如果没有启动成功可以去看日志文件/var/log/uwsgi.log
ss -anptl | grep 9090
LISTEN 0 100 127.0.0.1:9090 *:* users:(("uwsgi",pid=4076,fd=3),("uwsgi",pid=4075,fd=3),("uwsgi",pid=4074,fd=3))
到此swsgi配置完成,最后一步配置nginx
nginx的安装我就不赘述了,大家自行百度
编写配置文件在
vim /etc/nginx/conf.d/uwsgi.conf
server {
listen 81;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/host.access.log main;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;
uwsgi_param UWSGI_SCRIPT demo.wsgi;
uwsgi_param UWSGI_CHDIR /opt/app/Django/demo; #Django的项目目录
index index.html index.htm;
client_max_body_size 35m;
}
}
检查配置文件有没有出错
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重启ngunx服务器
service nginx restart
在浏览器中输入nginx配置的地址能否进入Django的页面
出现一下页面 ,因为我们不是在虚拟机中运行的所以需要加上本机的ip也可以访问,需要将我们的域名添加进白名单
vim /opt/app/Django/demo/demo/settings.py
/ALLOWED_HOSTS = [ '*' ]#查找到ALLOWED_HOSTS,将我们的域名添加进白名单
把之前的uwsgi进程杀掉
ps -ef |grep uwsgi
将uwsgi --ini /opt/app/Django/uwsgi.init进程杀死掉
kill -9 'pid'
之后再重启django
uwsgi --ini /opt/app/Django/uwsgi.init