配置文件备份:nginx+uwsgi+django

24 篇文章 0 订阅
18 篇文章 2 订阅

配置文件备份:nginx+uwsgi+django


现在流行的 Web 开发模式多为前后端分离开发,即前端使用 Angular、React、Vue 框架开发并打包为静态文件,部署到 Apache、Nginx 服务器,同时对路由做好对应的配置。而后端服务仅提供 RESTful、WebSocket 服务等。

互联网上关于 nginx、uwsgi 的配置文件教程各不相同,有些并不能起作用。笔者通过亲自部署相关的 Web 页面,并在本文中列出对应的配置文件信息。

本文大致架构


1. 前提条件

安装好相关的工具,例如:Nginx、Python、Uwsgi 等(Linux 环境下)。

P.S. 本文并不会提供详细的建立网站说明,只是对配置文件进行相关的备份。如需要建立网站,可以参阅文末的参考链接。


2. Nginx 配置文件

/etc/nginx 目录下,结构大致如图:

nginx dir

其中主要配置文件是 nginx.conf,这个文件中包含如下指令:

include 指令

所以,我们只需要在 conf.d 文件夹下新建配置文件,就可以达到自定义配置的目的了:

示例

这里我新建了两个配置文件,一个是对 Vue 打包后的 Web 页面提供服务,另一个是连接 Uwsgi 的后端。

2.1 Web 页面服务

server {
	listen 3000;
	server_name icdm2019;
	charset     utf-8;
	location / {
		root /root/zhangyun/web/icdm-dssc-2019-frontend/dist;  # vue 打包后静态文件存放的地址
		index index.html; # 默认主页地址

		location /api {
			proxy_pass http://127.0.0.1:8000; # 代理接口地址
			include  /etc/nginx/uwsgi_params;
		}
	}
}

这里在 3000 端口提供页面服务,同时对 RESTful API 提供了跨域访问的支持。

2.2 后端服务

upstream django {
    server 127.0.0.1:8888; # for a web port socket (we'll use this first)
}

server{
    listen 8000;
    server_name icdm2019django;
    charset utf-8;
    client_max_body_size 75M;  #上传文件大小限制

    # 动态文件交给uwsgi处理
    location /api {
        uwsgi_pass 127.0.0.1:8888;
        include /etc/nginx/uwsgi_params;
    }
}

在此处,Nginx 在 8000 端口连接到 8888 端口的 uwsgi 服务。


3. uwsgi 配置

[uwsgi]
home = /home/workspace/judicature-subject2-backend/venv # python 虚拟环境所在目录
chdir = /root/zhangyun/web/icdm-dssc-2019-backend/ # 后端 manage.py 所在目录
wsgi-file=/root/zhangyun/web/icdm-dssc-2019-backend/icdm2019/wsgi.py # 定位到 wsgi.py
module = icdm2019django.wsgi:application
master = True
processes = 4
max-requests = 5000
harakiri = 60
socket = 127.0.0.1:8888
uid = root
gid = root
pidfile = /home/icdm2019uwsgi/master.pid
daemonize = /home/icdm2019uwsgi/mysite.log
logto = /home/icdm2019uwsgi/uwsgi.log # log 文件
vacuum = True
py-autoreload=1 # 自动重载 Py 文件

这样,uwsgi 在 8888 端口提供服务。


4. 常用指令

# 检查 nginx 配置文件是够有错误
nginx -t

# 重启nginx
service nginx restart
# 或者
nginx -s stop
nginx -c /etc/nginx/nginx.conf

# 查看uwsgi进程
ps -aux | grep uwsgi

# 正常关闭uwsgi进程
uwsgi --stop /home/mysite_uwsgi/master.pid

# 强制关闭全部uwsgi进程
ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9


5. 参考链接

如何将django项目用Nginx部署到服务器?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值