Django+Nginx+uwsgi(超详细)
1.Django安装
1.0简介
安装的详细内容可参考官方网站:Download Django
由于官网是全英文的,经常会劝退很多人(很多时候我也这样,有时候又特别无奈),也可以使用浏览器的相关插件翻译成中文。
下面提供一些下载的方法:
1.1 直接通过pip的方式安装
pip3 install Django==3.0.8
1.2 在官网下载.tar.gz压缩包进行安装
依次执行下面的命令进行安装
tar xzvf Django-X.Y.tar.gz # 解压下载包,Django-X.Y.tar.gz是压缩包名,自行更改就好
cd Django-X.Y # 进入 Django 目录
sudo python3 setup.py install # 执行安装命令
使用如下的命令,创建Django项目
django-admin.py startproject myweb #myweb是项目名
使用如下的命令运行Django项目
cd myweb #进入项目目录
python3 manage.py runserver #运行项目
这里,服务器开放了8000号端口给我们去访问(只限在本地访问),如果是想在其他端口上运行项目或者是在云服务器上布署项目的,可以参考下面的命令:
# 1.在其他端口运行项目
python3 manage.py runserver 127.0.0.1:8088 #在8088端口运行项目#2.如果是在服务器上部署项目,可以参考下面的命令
python3 manage.py runserver 0.0.0.0:8088 #在8088端口运行项目,可以通过任何ip访问
如果是在服务器上布署,并且输入服务器ip:port仍旧无法访问(一直转圈圈,或者转半天直接报错),请尝试关闭防火墙
,在服务器的安全组里开放端口。(这里我采用的是阿里云的服务器,其他的云服务器如果有不同请自行百度)
很推荐大家安装宝塔Linux面板可以参见官方教程:宝塔Linux面板安装
安装宝塔Linux面板可以很方便的管理我们的服务器(还能很方便地和服务器通过FTP传输文件),可以得到下面这样一个网页端的管理平台。
2.Nginx安装
Nginx和Apache都是选择用的比较多的web服务器,各有优点。这里采用Nginx进行配置。由于uwsgi并不能加载静态文件(css样式文件等),因此才要通过配置web服务器去加载静态文件,不然样式什么的都无法加载出来!
Nginx的安装,使用下面的命令:
sudo apt-get install nginx
Nginx服务的启动、重启、停止
sudo service nginx start. #启动
sudo service nginx restart. #重启
sudo service nginx stop. #停止
ps:每次修改配置文件都要重启nginx服务!!!
3.安装uwsgi
3.1 安装并测试
分别执行下面的命令进行安装:
apt-get install python-dev
pip3 install uwsgi
创建一个输出hello world的test.py测试uwsgi的安装:
# test.py
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')])return [b"Hello World"]
使用如下的命令运行
uwsgi --http :8000 --wsgi-file test.py
这样就可以访问服务器/本机的8000号端口看到hello world!这里uwsgi便安装成功。
3.2 尝试运行django项目
首先进入项目
cd /home/myweb #进入项目根路径,注意不是/home/myweb/myweb
使用命令运行:
#这里的myweb是项目名,注意自己替换
uwsgi --http :8000 --plugin python --module myweb.wsgi
3.3 使用命令运行django项目
进入项目根目录
cd /home/myweb
执行下面的语句运行
#myweb是项目名,注意修改成自己的项目名
uwsgi --http :8000 --chdir /home/myweb --wsgi-file myweb/wsgi.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
3.4 在django项目内创建ini配置文件
由于命令太长等原因,我们可以编辑一个配置文件,在运行时通过导入配置的方式运行,首先将工作文件夹切换到自己的django项目:
cd /homw/myweb
添加myweb.ini的配置文件
vim myweb.ini
向文件中添加以下内容
#myweb是项目名,注意改成自己的项目名
[uwsgi]# myweb_uwsgi.ini file
[uwsgi]# Django-related settingssocket = :8000# the base directory (full path)
chdir = /home/myweb# Django s wsgi file
module = myweb.wsgi# process-related settings
# master
master = true# maximum number of worker processes
processes = 4uid = 1000
gid = 2000
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = truepidfile = /home/myweb_uwsgi/master.pid
daemonize = /home/myweb_uwsgi/myweb.log
在配置文件的最后,我们设置了进程后台运行。
在项目根目录下运行项目
uwsgi --ini myweb.ini #--ini命令导入ini配置文件
想要查看后台的进程我们可以输入如下的命令进行查看:
ps -aux|grep xxx #xxx是筛选关键字
如果需要杀死进程,我们可以使用kill命令:
kill %pid #pid是进程号
对于把进程放到后台运行,我们也可以使用如下命令:
nohup xxx & #把进程放在后台运行
#eg:
nohup uwsgi --ini myweb.ini &
4.Nginx配置
添加一个站点配置
sudo vim /etc/nginx/sites-available/myweb.conf
向文件中添加如下内容:
server {listen 80;server_name wannado.xyzcharset utf-8;client_max_body_size 75M;location /static {alias /home/myweb/static;}location / {uwsgi_pass 127.0.0.1:8000;include /etc/nginx/uwsgi_params;}
}
使用如下命令通过软链接的形式去激活站点:
sudo ln -s /etc/nginx/sites-available/myweb.conf /etc/nginx/sites-enabled/myweb.conf
使用如下的命令去检测配置文件的语法:
sudo service nginx -t
这里,由于修改了配置文件,必须进行重启:
sudo service nginx restart
不出意外,到这里nginx的配置就结束了!(当然很有可能没有结束,hhh)
在浏览器中输入服务器/本地的ip:port(端口)地址进行访问就可以了~
运行结果如下:(页面没什么内容,单纯测试一下传输json数据)
Django+Nginx+uwsgi(超详细)相关推荐
- centos7根据端口查进程_记录一次CentOs7下Nginx+WSGI部署Django项目(超详细)
记录一次Django部署的文章,不是很熟悉Linux系统,踩了不少坑,本篇文章相当于是一个总结,我会在本文中详细介绍,部署单个Django项目和多个Django的方法,如读者有更好的方法,欢迎留言一起 ...
- django+nginx+uwsgi项目部署文档整理
django+nginx+uwsgi项目部署文档整理 参考文章:https://blog.csdn.net/qq_42314550/article/details/81805328 一.python安 ...
- Centos7.x快速配置Django+Nginx+Uwsgi服务
大家好,我是Mr数据杨.今天,将和大家分享如何构建一个完善的服务器环境.折磨了我2天,终于自己调试成功Django+nginx+uwsgi的服务,直接上流程按照这个流程100%能成功,就算你啥也不懂看 ...
- Django + Nginx + Uwsgi + Celery + Rabbitmq 做一个高速响的应网站架构
Django :渲染页面,站点访问控制,管理网站,网站框架 Nginx:ip访问管理,数据传输控制 Uwsgi:处理链接Diango和Nginx的传输协议,也可以看作是处理客户端数据和Django之间 ...
- Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...
- Django+nginx+uwsgi+ubuntu18.04网站部署
Django网站的部署 原理 凡事都要讲个原理嘛.如图所示,就是整个原理啦.详细可以观看哔哩哔哩up主讲的真不错呀!!! 网站用户 网站服务器 socket uwsgi Django 图片来源于(ht ...
- Python+Django+Nginx+Uwsgi(史上最全步骤)(亲测)
步骤: Python安装 第一步安装Python (很多购买的服务器linux系统中自带python2和python3,我是直接使用自带的python3.5版本的) 如果系统中没有,则自己安装,如下: ...
- centos daemonize_手把手教你在centos上配置Django项目(超详细步骤)
前言 关于Django的部署,本人也踩了很多坑,这篇文章一步一步教你怎么进行部署,只需要你按照我的步骤来就OK了!这里我们使用的服务器是一个全新的服务器,没有安装任何东西. 基础环境搭建步骤 ★ 注意 ...
- centos sokit_手把手教你在centos上配置Django项目(超详细步骤)
前言 关于Django的部署,本人也踩了很多坑,这篇文章一步一步教你怎么进行部署,只需要你按照我的步骤来就OK了!这里我们使用的服务器是一个全新的服务器,没有安装任何东西. 基础环境搭建步骤 ★ 注意 ...
- 手把手教你在centos上配置Django项目(超详细步骤)
点击上方"JAVAandPython君",选择"星标"公众号 重磅干货,第一时间送达 小白学Django系列: 小白学Django第一天| MVC.MVT以及D ...
最新文章
- 虚拟现实大会ChinaVR2015报告之-数据可视化的挑战与机遇
- server 2008 配置php mysql_Win2008 Server配置PHP环境
- 在日期格式化的时候提示错误:Tostring没有采用一个参数的重载
- zabbix mysql版本号_zabbix 监控mysql5.6版本 及主从
- 转:VC中MessageBox的常见用法
- Android-多击事件处理
- 华为手机怎样才算激活了_外观专利到底怎样才算侵权呢?
- springcloud微服务系列之服务注册与发现组件Eureka
- php mysql 插入多条数据_mysql如何插入多条数据?
- 页面编程小技巧 —— 大屏图片自适应
- Improving Opencv11 Extract horizontal and vertical lines by using morphological operations
- 简书计算机组成原理知识点梳理,指令:计算机的语言(MIPS) --计算机组成原理(2)...
- ei会议论文录用但不参加会议_ei会议论文录用但不参加会议_您好,您的EI会议论文流程一点通到了...
- 那些会休息的人是如何度过假期的?
- javawe(ckeditorsmartupload)
- 去掉Nero 8刻录时激活三方专利组件的提示框
- 学术扫盲之期刊,数据库,会议都是什么
- HR人力资源系统管理源码
- 【论文翻译 - RFID】射频全息图:利用商业化产品对移动射频标签进行实时高精度追踪
- 5.2 activiti任务监听器TaskListener
热门文章
- 如何优化冷启动的时间
- 微信收藏夹文件保存在服务器安全吗,开启这个功能,微信文件再也不怕过期
- 跳转到文字转语音设置界面
- 2022无线蓝牙耳机排行榜,2022最值得入手的蓝牙耳机品牌
- 解决【ifcfg-ens33】网卡一直无法启动问题
- 信息熵和条件熵的计算
- 蓝桥杯C/C++每日一练之十六进制转八进制
- HorizontalScrollView的使用
- java的entryset_「entryset」Java中Map的 entrySet() 详解以及用法(四种遍历map的方式) - seo实验室...
- 云盘倒下——生命中不能承受之重