Django+uwsgi+nginx本地服务器部署(Ubuntu)

一、项目介绍

        为了学习Python3在web上的应用, 需要部署一个Django项目, 具体环境如下:

  • 服务器: Ubuntu 18.04.6
  • 代理服务器: Nginx 1.14.0
  • WEB服务器: uwsgi 2.0.23
  • 项目框架: Django 3.2.23
  • 项目运行环境: Python 3.6.9

二、安装环境

1、对系统源文件进行升级更新
sudo apt-get update          #更新源文件
sudo apt-get upgrade         #升级所有已安装的包
2、安装Python3和pip
#(1)安装python(已安装的会重新安装最新版本),并验证版本
sudo apt-get install python3 #安装Python3
python3 --version    #查看Python3安装版本
 
#(2)安装pip
sudo apt-get install python3-pip #安装pip
pip3 --version    #查看pip安装版本
 
#(3)安装Pillow包,否则启动Django项目会报错,项目没有图片的不用管
sudo apt-get install libjpeg-dev zlib1g-dev  #在安装Pillow包前需要先安装zlib
python3 -m pip install Pillow     #图像处理库
3、安装Django
#(1)安装Django
python3 -m pip install Django
 
#(2)创建项目
django-admin startproject HelloWorld  #在当前目录下创建项目, 可以新建个目录, 然后再到该目录下创建
python3 manage.py runserver 0.0.0.0:8000       #启动服务器, 要在项目目录下执行
 
#(3) 项目settings.py中修改以下两个配置
DEBUG = False      #代表非开发模式 
ALLOWED_HOSTS = ["*"]    #允许所有的请求来访问Django项目
 
#(4) 收集静态文件到项目/static文件夹
############在setting.py最后添加##############
STATIC_URL = '/static/'
STATIC_ROOT = path(BASE_DIR,'static')
###########################################
python3 manage.py collectstatic     #执行后系统的css、图片视频等文件会收录到项目/static文件夹

三、安装uwsgi并配置

#(1)安装uwsgi
python3 -m pip install uwsgi  #安装,python3 -m pip uninstall uwsgi可以卸载
uwsgi --version  #查看uwsgi版本
 
#(2)配置uwsgi。在项目根目录增加uwsgi.ini文件(比如目录/var/www/HelloWorld/,直接在HelloWorld中建)
#######################文件内容##########################
[uwsgi]
# 转发给nginx的端口号,nginx和uwsgi就是通过这个端口号传递信息的
socket= 127.0.0.1:8080
 
# 是否使用主线程
master=true
 
# 项目的绝对路径,根据你的项目来
chdir=/var/www/HelloWorld/
 
# Django项目wsgi.py文件的相对路径
wsgi-file = HelloWorld/wsgi.py
 
# 进程数
processes=4
 
# 每个进程的线程数
threads = 2
 
# 监听端口
stats = 127.0.0.1:9191
 
# 每次退出时是否清理环境配置
vacuum=true
 
# 目录中一旦有文件被改动就自动重启
touch-reload = /var/www/HelloWorld
 
# 存放日志**************重要,排查uwsgi问题的核心文件***************
daemonize = /var/www/HelloWorld/uWSGI.log
 
buffer-size = 655365
########################文件内容##########################
 
#(3)uwsgi操作,此时你只需要运行uwsgi就好
uwsgi --ini uwsgi.ini             #运行uwsgi,此时是可以ctrl+c退出运行
uwsgi --ini uwsgi.ini &            #后台运行uwsgi
 
###下方命令修改了uwsgi配置文件需要重启时使用###
ps ax|grep uwsgi        #查看uwsgi的所有进程
pkill -f uwsgi -9     #杀死uwsgi的所有进程

四、安装Nginx并配置

#(1)安装并启动nginx
sudo apt-get install nginx      #安装nginx
sudo /etc/init.d/nginx start    #启动nginx,/etc/init.d/是文件路径,里面存放了nginx启动的脚本
sudo nginx -v #查看nginx版本
 
#(2)配置文件进入/etc/nginx文件夹修改nginx.conf文件
###############**nginx.conf**文件内容#################
user root;         #否则nginx没有权限访问静态资源文件
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
 
events {
	worker_connections 768;
	# multi_accept on;
}
 
http { 
	sendfile on;
	tcp_nopush on;
	types_hash_max_size 2048;
 
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
 
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;
 
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
 
	gzip on;
 
	include /etc/nginx/conf.d/*.conf;
	#include /etc/nginx/sites-enabled/*; #此文件为nginx默认的监听80端口的文件,给注释掉 ,否则访问网站时不会把消息转发给下方配置的uwsgi端口
	#######################以下为增加的内容##############
	server {
		listen        80 default_server;    #监听80端口
		listen         [::]:80 default_server;
		server_name        127.0.0.1;  #设置为本地IP地址, 就可以远程访问了
		charset      utf-8;
 
		client_max_body_size 75M;
 
		location / {
			include   uwsgi_params;
			uwsgi_pass     127.0.0.1:8080;  #将信息转发给8080端口的uwsgi,和uwsgi.ini配置文件中的端口需要保持一致
			uwsgi_read_timeout    600;
   		    uwsgi_send_timeout    600;
    	    uwsgi_connect_timeout 600;
		}
		#路径为/static的请求,直接从根目录的static文件夹中获取静态文件
		location /static {
           alias /var/www/HelloWorld/static;     
        }
		#路径为/media 的请求直接从根目录的media文件夹中获取静态文件(指django媒体文件-media)
        location /media {
            alias /var/www/HelloWorld/media;   
        }
	}
}
################文件内容################

五、最后一步

        在部署完了之后,需要把nginx、uwsgi、Django服务器重新启动一下,否则无法访问

#Nginx
sudo systemctl restart nginx

#Django
python3 manage.py runserver 0.0.0.0:8000

#uwsgi
pkill -f uwsgi -9 
uwsgi --ini uwsgi.ini

现在就可以正常访问了

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一个自由开源的操作系统,其中有很多的工具和服务可以用于搭建与开发Web应用。其中,常用的Web应用栈是使用Nginx作为Web服务器UWSGI作为应用程序服务器Django作为Web框架,MySQL作为关系型数据库。 要安装和配置这些服务,需要进行以下步骤: 1. 安装Ubuntu操作系统,可以选择最新版本的Ubuntu LTS或者最新的Ubuntu发行版。 2. 安装Nginx服务,并配置Nginx服务器来处理并转发HTTP请求。这里可以使用apt-get install命令来安装Nginx包。 3. 安装UWSGI服务,并配置UWSGI服务器来处理Django应用程序。这里可以使用pip install命令来安装UWSGI包。 4. 安装Django,并编写一个基本的Django应用程序。然后配置UWSGI服务器以运行Django应用程序。可以使用pip install命令来安装Django包。可以使用此教程 - https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 5. 安装MySQL数据库服务,并配置MySQL服务器以使用Django应用程序。可以使用apt-get install命令来安装MySQL包。 6. 在Django应用程序中配置MySQL数据库连接参数,并创建 MySQL数据库及表。 7. 配置Nginx服务器以使用UWSGI服务器来处理Django应用程序。可以使用上面的教程来完成这一步骤。 8. 启动NginxUWSGI服务器,并测试Django应用程序是否可以访问。 在进行以上的步骤时,需要注意安全措施,防止 Web 应用程序被攻击和入侵。同时,也需要进行充分的测试,保证 Web 应用程序的稳定性和可用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值