admin 2025-09-25 06:57:23 世界杯的历史

(可选)如需部署您的Django项目,将本地的项目上传到服务器,同时修改Django配置,操作如下。

重要 如果您仅想展示基本的Django网页,测试此方案的可行性,请跳过此步骤。

将本地的项目上传至服务器,请参见上传和下载文件(SFTP)。

执行以下命令,修改Django配置文件settings.py。

sudo vim /home/myblog/uwsgi_project/uwsgi_project/settings.py按i键,进入编辑模式。

将DEBUG = True修改为DEBUG = False。

在settings.py文件开头添加如下参数。

import os为什么添加import os?

作用域问题:确保os模块在整个settings.py文件中都是可用的。如果你在文件的中间或者末尾才导入os,那么在此之前使用os的地方就会抛出NameError异常。

性能优化:解释器只需要解析一次导入语句,而不是在遇到时再解析。

在settings.py文件末尾添加如下参数。

STATIC_ROOT = os.path.join(BASE_DIR, "static/")为什么添加STATIC_ROOT = os.path.join(BASE_DIR, "static/")?

静态文件收集:STATIC_ROOT用于指定一个绝对路径,在这个路径下,Django将收集所有的静态文件(如CSS、JavaScript、图片等),以便在生产环境中由Web服务器提供服务。这个设置通常放在文件的末尾,因为它依赖于之前已经定义好的变量。

避免循环引用:如果某些设置项依赖于其他的设置项,将它们放置在文件的不同位置可以避免潜在的循环引用问题。

按Esc键,输入:wq保存并退出文件。

执行如下命令,收集所有静态文件。

sudo python3 manage.py collectstatic

执行以下命令,打开Nginx配置文件。

Alibaba Cloud Linux 3/2 、CentOS 7/8

sudo vim /etc/nginx/nginx.confUbuntu 22/20/18

sudo vim /etc/nginx/sites-enabled/default按i键进入编辑模式,在server中修改或添加以下参数。

upstream django {

#具体端口必须与您uWSGI配置文件中定义的端口一致

server 127.0.0.1:8001;

}

server {

#设置的nginx访问端口

listen 8002;

server_name test;

charset utf-8;

location /static {

# 启用目录列表

autoindex on;

# 静态文件的绝对路径。请根据实际情况修改这个路径。

alias /home/myblog/uwsgi_project/static;

}

location / {

# 将请求传递给uWSGI服务器,这里的地址与upstream块中的定义相匹配。

uwsgi_pass 127.0.0.1:8001;

# 包含 uwsgi 参数配置

include uwsgi_params;

# Nginx自带的uWSGI参数文件,具体目录请根据实际情况修改

include /etc/nginx/uwsgi_params;

# 指定uWSGI使用的Python WSGI入口点。iCourse.wsgi为Django项目的wsgi文件名。

uwsgi_param UWSGI_SCRIPT iCourse.wsgi;

#设置uWSGI的工作目录,具体目录请根据实际情况修改。

uwsgi_param UWSGI_CHDIR /iCourse;

# 指定默认的索引文件。

index index.html index.htm;

client_max_body_size 35m;

}

}具体位置如下图所示。

执行以下命令,创建日志目录,uWSGI 将会作为守护进程在后台运行,并将它的输出重定向到这个日志文件中。

sudo mkdir -p /var/log/uwsgi/ #您可根据实际情况修改。执行以下命令,新建uWSGI配置文件uwsgi_config.ini。

sudo vim uwsgi_config.ini按i键进入编辑模式,在文件中添加以下参数。编辑完成后,按Esc键,输入:wq保存并退出文件。

[uwsgi]

#此处的8001端口需要和nginx配置文件中定义的uwsgi_pass端口一致。

socket = 127.0.0.1:8001

#指定项目目录,根据您的实际项目修改该路径。

chdir = /home/myblog/uwsgi_project/

#指定Django的wsgi file文件,根据项目修改。

wsgi-file = uwsgi_project/wsgi.py

#最大工作进程。

processes = 4

#每个工作进程processes启动后开启的线程个数。

threads = 2

#环境退出时自动清理。

vacuum = true

#设置用于uwsgi包解析的内部缓存区大小为64k,默认是4k。

buffer-size = 65536

#日志文件路径,请确保此路径可写。根据您的实际项目修改该路径。

daemonize = /var/log/uwsgi/uwsgi_project.log

#确保线程支持已启用。

enable-threads = true 启动程序。

执行以下命令,重启Nginx服务。

sudo systemctl restart nginx执行以下命令,重启uWSGI服务。

执行以下命令,停止已启动的uWSGI程序。

ps aux |grep uwsgi

sudo kill -9 13187 #13187指通过上述命令获取的pid,具体pid以您现场实时获取的为准

执行以下命令,启动uWSGI服务。

Alibaba Cloud Linux 3/2 、CentOS 7/8

uwsgi --ini uwsgi_config.iniUbuntu 22/20/18

sudo uwsgi --ini uwsgi_config.ini同时后台回显信息如下。

在本地电脑浏览器的地址栏输入http://:8002,即可访问相关Django页面。