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

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的页面
在这里插入图片描述
出现一下页面 ,因为我们不是在虚拟机中运行的所以需要加上本机的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

在这里插入图片描述
出现欢迎页面表示我们配置成功

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值