使用Nginx + uwsgi进行部署django项目
一. 检查项目是否可以运行
- 启动项目
python manage.py runserver 0.0.0.0:8099
- 输入ip:8099 查看启动页面
出现上述页面表示运行成功
二. 安装uwsgi并配置
2.1 下载uwsgi
pip install uwsgi
新建文件test.py写入内容,测试一下是否可以执行
def application(env, start_response):
start_response('200 OK', [('Content-Type', 'test.html')])
return [b'hello world']
启动:uwsgi --http-socket :8098 --file test.py
访问页面能够看到内容
2.2 配置uswgi文件, 需要创建一个 ini 文件,指定项目目录、模块、端口、进程、日志等信息,
这里在项目根目录下创建了一个uwsgi_conf目录,并将ini文件及其他相关文件都放在此目录中
ini文件内容如下:
[uwsgi]
# 对外提供 http 服务的端口
http = :8086
#the local unix socket file than commnuincate to Nginx 用于和 nginx 进行数据交互的端口
socket = 127.0.0.1:8098
# the base directory (full path) django 程序的主目录
chdir= /home/lingxl/www/Blog/Blog_pro/Blog
# Django's wsgi file
wsgi-file = Blog/wsgi.py
# maximum number of worker processes
processes = 4
#thread numbers startched in each worker process
threads = 2
#monitor uwsgi status 通过该端口可以监控 uwsgi 的负载情况
stats = 127.0.0.1:8097
# clear environment on exit
vacuum = true
## 指定uWSGI日志文件的路径。uWSGI将在此文件中记录运行日志和错误信息
daemonize=%(chdir)/uwsgi_conf/logs/uwsgi.log
2.3 运行uwsgi
uwsgi uwsgi.ini
看到下面页面表示配置成功
以上工作表面uwsgi已与django连通成功
如果不成功,可以查看日志文件,日子文件路径需要在ini文件进行配置。
三. 配置nginx
3.1 此处忽略Nginx安装步骤,Nginx的安装单独整理。
pass
3.2 找到 /etc/nginx/nginx.conf,看一下配置文件,在 /etc/nginx/ 中创建blog目录,在blog目录下再创建一个blog.conf文件。
mkdir blog && cd blog && touch blog.conf
3.3 在/etc/nginx/nginx.conf 的http里写入两行代码:
server_names_hash_bucket_size 64;
include /etc/nginx/blog/*.conf;
3.4 写入blog.conf内容
server {
listen 8099; # 外部进行访问的接口
server_name localhost; # 服务器域名
# root /usr/share/nginx/html;
access_log /var/log/nginx/blog.log;
error_log /var/log/nginx/blog_error.log;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8098; 与uwsgi的端口保持一致
}
location /static/ {
autoindex on;
## 必须能到达css,js那一层, 否则会出错。这里需要提前配置好静态资源 static
alias /home/lingxl/www/Blog/Blog_pro/Blog/static/;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
3.4 static 配置
在django的settings的最下边写入两行代码
STATIC_URL = '/static/'
STATIC_ROOT = f"{BASE_DIR}/static"
3.5 搜集 static 静态资源
python manage.py collectstatic
3.6 Nginx检查配置文件
nginx -t 是nginx检查配置文件是否有错误的命令,如果正常,输出如下
3.7 使配置文件生效
nginx -s reload 是nginx重新载入配置文件的命令,可以让配置项生效。
3.8 重启nginx
systemctl restart nginx
3.9 访问监听端口
配置成功!!!