小布丁和巧乐兹网站诞生记(Django+uWSGI+Nginx)

2024-03-08 14:40

本文主要是介绍小布丁和巧乐兹网站诞生记(Django+uWSGI+Nginx),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小布丁和巧乐兹网站诞生记

河流凭借山川纪念故乡,我凭借和你相爱纪念岁月。@Vivien

1.准备工作

  • 服务器(阿里云、腾讯云、华为云等等随便一款,文中服务器默认为阿里云、系统默认为Ubuntu)
  • 域名(与域名有关的解析)
  • Xshell、Xftp两款软件(百度下载官方免费版)

2.连接服务器

查看服务器端口情况

主要查看22号端口是否开启,22端口用于远程链接

设置SSH登陆密码

使用Xshell连接服务器

3.安装python

查看系统中的python

python

如果输入代码后显示错误,或者显示的python版本太低,我们直接安装比较新的python版本(示范安装的版本为python3.7.1)

安装新版python

首先进入一个目录(随便一个)

cd ~

下载python3.7.1

wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

解压到当前目录

tar -zxvf Python-3.8.1.tgz

编译安装

./configure --prefix=/usr/local
make
make install

安装完成后python3.7.1被安装在/usr/local

建立软连接

如果之前输入python进入了python,那么就要先删除原有的软连接,输入命令

rm -rf python

如果没有则直接跳到这一步,输入命令

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python

此时,输入python测试,若出现python3.7.1版本,python软连接建立完成

然后再建立pip软连接,输入命令

ln -s /usr/local/python3/bin/pip /usr/bin/pip

此时,输入pip -V如果出现pip的版本,pip软连接建立完成

4.安装virtualenv和virtualenvwrapper

安装virtualenv

在随便一个目录下,输入命令

pip install virtualenv

安装成功后,输入virtualenv --version若出现virtualenv版本,安装成功

安装virtualenvwrapper

在随便一个目录下,输入命令

pip install virtualenvwrapper

在随便一个目录下新建虚拟环境目录(我是在cd ~下),输入命令

mkdir envs

添加环境变量信息

记录下virtualenvwrapper.sh的位置,输入命令

find / -name virtualenvwrapper.sh

进入根目录

cd ~

建立虚拟环境目录

mkdir envs

任意目录下,输入命令

vim ~/.bashrc

在文件最下方输入

export WORKON_HOME=~/envs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python3/bin/virtualenv
source /usr/local/python3/bin/virtualenvwrapper.sh

其中VIRTUALWRAPPER_VIRTUALENV是virtualenv的安装目录

source后跟的是刚才记录的virtualenvwrappper.sh位置

在任意目录下,激活环境变量

source ~/.bashrc

5.虚拟环境

新建虚拟环境

在任意目录下,输入命令

mkvirtualenv djangoenv

进入虚拟环境

在任意目录下,输入命令

workon djangoenv

像下图一样证明进入成功

在这里插入图片描述

退出虚拟环境

在任意目录下,输入命令

deactivate

6.安装Django

首先保证进入了虚拟环境,在任意目录下输入命令

pip install django

如果安装有错误,就更换为其他源安装,类似

pip -i install https://pypi.tuna.tsinghua.edu.cn/simple django==3.1.5

7.创建Django环境

创建Django项目

首先保证进入虚拟环境

进入任意目录,创建项目目录,例如(choruspudding就是我的Django项目名)

cd ~
django-admin.py startproject choruspudding

进入项目目录下

cd choruspudding

此时ls查看文件,发现有一个choruspudding文件夹和一个manage.py文件,证明项目创建成功

创建Django APP

在项目目录下,创建index APP,输入命令

python manage.py startapp index

此时项目目录下多了index文件夹

此时进入settings.py文件,输入命令

vim ~/choruspudding/choruspudding/settings.py

在这里插入图片描述

在INSTALLED_APP中添加新增的APP,如上图

创建templates文件夹

在项目目录下,新建文件夹,输入命令

mkdir templates

进入templates目录,新建一个html页面(写入任意内容测试使用),

cd templates
vim index.html

templates文件夹下集中放置的html文件,提供给Django APP使用

创建static文件夹

在项目目录下,新建文件夹,输入命令

mkdir static

进入static目录,输入命令

mkdir css
mkdir js
mkdir images
mkdir ttfs

分别放置CSS文件、js文件、图片文件、字体文件等静态资源

编辑settings文件,输入命令

vim ~/choruspudding/choruspudding/settings.py

在文件最底部添加STATICFILES_DIRS如下图

在这里插入图片描述

设置index APP

在项目目录下,进入index APP的目录,输入命令

cd index

编辑views.py,输入命令

vim views.py
from django.shortcuts import renderdef index(requset):return render(request,'index.html')

编辑完成后,新建urls文件,输入指令

vim urls.py
from django.urls import path,include
from . import viewsurlpatterns = [path('', views.index),
]

设置全局路由

在项目目录下,编辑urls.py,输入命令

vim ~/choruspudding/choruspudding/urls.py
from django.contrib import admin
from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),path('', include('index.urls')),
]

这样第一个网页就是index.html了

到此为止,就完成了Django的全部基本设置,现在我们使用代码python manage.py runserver就可以在内网访问到Django页面了。

但这还不够,距离一个真正的网站还差两个关键部件

8.配置uWSGI环境

uWSGI是一个Web服务器

安装uWSGI

首先保证进入虚拟环境,输入命令

pip install uwsgi

创建mysite.ini

然后进入项目目录,输入命令

vim mysite.ini
[uwsgi]
# plugin = python
socket =127.0.0.1:8080
chdir = /root/choruspudding
wsgi-file = choruspudding/wsgi.py
processes = 4
threads = 2
master = True
daemonize = uwsgi.log

注意此文件中的chdir和wsgi-file要根据自己的项目目录修改

全局安装uWSGI

这时,尝试启动uWSGI,输入命令

uwsgi --ini ~/choruspudding/mysite.ini

如果没错误,输入deactivate退出虚拟环境,输入命令

pip install uwsgi

这样就在全局也安装了uWSGI

设置开机自启uWSGI

进入rc.local文件,输入命令

vim /etc/rc.local

在这里插入图片描述

更改为上图,这样uWSGI开机会自动启动

9.配置nginx

安装nginx

任意目录下输入命令

wget https://nginx.org/download/nginx-1.18.0.tar.gz

解压

tar -zxvf nginx-1.18.0.tar.gz

进入解压目录

cd nginx-1.18.0

配置

./configure --prefix=/usr/local/nginx

编译

make

安装

make install

配置软连接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

配置conf文件

编辑nginx安装目录下的conf文件,输入命令

vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

在这里插入图片描述

将conf文件更改为上图

设置nginx开机自启

cd /lib/systemd/system
touch nginx.service
vim nginx.service
[Unit]
Description=nginx
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true[Install]
WantedBy=multi-user.target

保存后,输入systemctl start nginx.service

此时,可以重启服务器,测试uWSGI和Nginx是否自动启动。

到此,我们的Django+uWSGI+Nginx部署工作,全部完成!

2021/2/1 2:36

将conf文件更改为上图

设置nginx开机自启

cd /lib/systemd/system
touch nginx.service
vim nginx.service
[Unit]
Description=nginx
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true[Install]
WantedBy=multi-user.target

保存后,输入systemctl start nginx.service

此时,可以重启服务器,测试uWSGI和Nginx是否自动启动。

到此,我们的Django+uWSGI+Nginx部署工作,全部完成!

—————————————————————————————————————
谨以此文纪念我们的网站建成

2021/2/1 2:47

这篇关于小布丁和巧乐兹网站诞生记(Django+uWSGI+Nginx)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/787424

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

速盾高防cdn是怎么解决网站攻击的?

速盾高防CDN是一种基于云计算技术的网络安全解决方案,可以有效地保护网站免受各种网络攻击的威胁。它通过在全球多个节点部署服务器,将网站内容缓存到这些服务器上,并通过智能路由技术将用户的请求引导到最近的服务器上,以提供更快的访问速度和更好的网络性能。 速盾高防CDN主要采用以下几种方式来解决网站攻击: 分布式拒绝服务攻击(DDoS)防护:DDoS攻击是一种常见的网络攻击手段,攻击者通过向目标网

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历

转自:http://blog.csdn.net/fengyily/article/details/42557841 本人一直用的是CRtmpServer服务,在CRtmpServer服务中根据自已的想法也加入了许多功能,如通过http接口来加载配置等,苦于不支持HLS,自已添加ts分片水平又有限,思来想去决定借助SimpleRtmpServer的HLS功能。说干就干,马上查找相关资源

由Lua 粘合的Nginx生态环境

转自:http://blog-zq-org.qiniucdn.com/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html -- agentzh tech-club.org 演讲听录 免责聲明 Lua 粘合的 Nginx 生态环境 2.1. openresty 2.2. 配置小语言 2.3. ngx_drizzle 2.4.