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(超详细)相关推荐

  1. centos7根据端口查进程_记录一次CentOs7下Nginx+WSGI部署Django项目(超详细)

    记录一次Django部署的文章,不是很熟悉Linux系统,踩了不少坑,本篇文章相当于是一个总结,我会在本文中详细介绍,部署单个Django项目和多个Django的方法,如读者有更好的方法,欢迎留言一起 ...

  2. django+nginx+uwsgi项目部署文档整理

    django+nginx+uwsgi项目部署文档整理 参考文章:https://blog.csdn.net/qq_42314550/article/details/81805328 一.python安 ...

  3. Centos7.x快速配置Django+Nginx+Uwsgi服务

    大家好,我是Mr数据杨.今天,将和大家分享如何构建一个完善的服务器环境.折磨了我2天,终于自己调试成功Django+nginx+uwsgi的服务,直接上流程按照这个流程100%能成功,就算你啥也不懂看 ...

  4. Django + Nginx + Uwsgi + Celery + Rabbitmq 做一个高速响的应网站架构

    Django :渲染页面,站点访问控制,管理网站,网站框架 Nginx:ip访问管理,数据传输控制 Uwsgi:处理链接Diango和Nginx的传输协议,也可以看作是处理客户端数据和Django之间 ...

  5. Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...

  6. Django+nginx+uwsgi+ubuntu18.04网站部署

    Django网站的部署 原理 凡事都要讲个原理嘛.如图所示,就是整个原理啦.详细可以观看哔哩哔哩up主讲的真不错呀!!! 网站用户 网站服务器 socket uwsgi Django 图片来源于(ht ...

  7. Python+Django+Nginx+Uwsgi(史上最全步骤)(亲测)

    步骤: Python安装 第一步安装Python (很多购买的服务器linux系统中自带python2和python3,我是直接使用自带的python3.5版本的) 如果系统中没有,则自己安装,如下: ...

  8. centos daemonize_手把手教你在centos上配置Django项目(超详细步骤)

    前言 关于Django的部署,本人也踩了很多坑,这篇文章一步一步教你怎么进行部署,只需要你按照我的步骤来就OK了!这里我们使用的服务器是一个全新的服务器,没有安装任何东西. 基础环境搭建步骤 ★ 注意 ...

  9. centos sokit_手把手教你在centos上配置Django项目(超详细步骤)

    前言 关于Django的部署,本人也踩了很多坑,这篇文章一步一步教你怎么进行部署,只需要你按照我的步骤来就OK了!这里我们使用的服务器是一个全新的服务器,没有安装任何东西. 基础环境搭建步骤 ★ 注意 ...

  10. 手把手教你在centos上配置Django项目(超详细步骤)

    点击上方"JAVAandPython君",选择"星标"公众号 重磅干货,第一时间送达 小白学Django系列: 小白学Django第一天| MVC.MVT以及D ...

最新文章

  1. 虚拟现实大会ChinaVR2015报告之-数据可视化的挑战与机遇
  2. server 2008 配置php mysql_Win2008 Server配置PHP环境
  3. 在日期格式化的时候提示错误:Tostring没有采用一个参数的重载
  4. zabbix mysql版本号_zabbix 监控mysql5.6版本 及主从
  5. 转:VC中MessageBox的常见用法
  6. Android-多击事件处理
  7. 华为手机怎样才算激活了_外观专利到底怎样才算侵权呢?
  8. springcloud微服务系列之服务注册与发现组件Eureka
  9. php mysql 插入多条数据_mysql如何插入多条数据?
  10. 页面编程小技巧 —— 大屏图片自适应
  11. Improving Opencv11 Extract horizontal and vertical lines by using morphological operations
  12. 简书计算机组成原理知识点梳理,指令:计算机的语言(MIPS) --计算机组成原理(2)...
  13. ei会议论文录用但不参加会议_ei会议论文录用但不参加会议_您好,您的EI会议论文流程一点通到了...
  14. 那些会休息的人是如何度过假期的?
  15. javawe(ckeditorsmartupload)
  16. 去掉Nero 8刻录时激活三方专利组件的提示框
  17. 学术扫盲之期刊,数据库,会议都是什么
  18. HR人力资源系统管理源码
  19. 【论文翻译 - RFID】射频全息图:利用商业化产品对移动射频标签进行实时高精度追踪
  20. 5.2 activiti任务监听器TaskListener

热门文章

  1. 如何优化冷启动的时间
  2. 微信收藏夹文件保存在服务器安全吗,开启这个功能,微信文件再也不怕过期
  3. 跳转到文字转语音设置界面
  4. 2022无线蓝牙耳机排行榜,2022最值得入手的蓝牙耳机品牌
  5. 解决【ifcfg-ens33】网卡一直无法启动问题
  6. 信息熵和条件熵的计算
  7. 蓝桥杯C/C++每日一练之十六进制转八进制
  8. HorizontalScrollView的使用
  9. java的entryset_「entryset」Java中Map的 entrySet() 详解以及用法(四种遍历map的方式) - seo实验室...
  10. 云盘倒下——生命中不能承受之重