Django+uwsgi+nginx

运行环境:
CentOS Linux release 7.5.1804 (Core)
Python3.6.5
Django2.1.8
uwsgi:2.0.18
nginx:1.12.2

安装Django

需要提前安装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+nginx_第1张图片
看到这个界面说明Django没有问题 ,接下来就是uwsgi

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

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的页面
Django+uwsgi+nginx_第2张图片
出现一下页面 ,因为我们不是在虚拟机中运行的所以需要加上本机的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

Django+uwsgi+nginx_第3张图片
出现欢迎页面表示我们配置成功

你可能感兴趣的:(Django+uwsgi+nginx)