Nginx与uWSGI搭建Django应用程序

本文介绍了如何使用Nginx和uWSGI部署一个名为‘享忆’的大学生二手交易平台。包括配置Nginx来处理静态文件,设置uWSGI用于转发API请求到Django应用程序,并解决了部署过程中遇到的问题。

前言

之前帮女朋友做的一个 ‘享忆’ (大学生二手交易平台),都是在本地演示,显的有点low,刚好之前在Google Cloud Platform有注册,就准备把 ‘享忆’放到我的服务器上(网站点这里).主要利用到的技术就是Nginx和uWSGI.

Nginx

这里就不介绍什么是Nginx了,随便谷歌一篇文章都比我解释的清楚,省的在关公面前耍大刀。主要就是记录一下整体的过程和遇到的问题。

配置

  1. 安装
  2. 安装完成后,找到nginx的安装目录,nginx默认配置文件是nginx.conf。
  3. cat nginx.conf, 应该可以看到类似以下内容(根据nginx的安装目录不同):
 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;

这两段意思是,引入confg.d 目录下的以conf为结尾的文件和sites-enabled下的所有文件。
你也可以其目录,例如 sites-enabled和sites-available目录中都有一个default 配置文件,里面已经配置好了许多东西。
因为之后我可能会将我的博客也放到服务器上,所以我需要为应用程序单独配置,所以我将sites-available目录中的default文件复制一份到conf.d中(注意文件结尾).并修改一下内容:

server{
    ...
    root your project path
    ...
}

修改root 后半段为你的前端目录路径,修改完成后保存,nginx 会帮你解析静态文件。

uWSGI

1. 安装   `sudo pip install uwsgi`

2. 确保你的django 后台程序能够运行, `python manage.py runserver`

3.  在你的后台目录中新建 uwsgi.ini 文件,输入以下内容(注意修改相关内容)
[uwsgi]
socket = 127.0.0.1:9090 # (监听的地址)
chdir= your backend project path
module=填写你django后台的wsgi文件 # (例如 xx.wsgi)
master = true         
processes=2
threads=2
max-requests=2000
chmod-socket=664
vacuum=true
daemonize = your backend project path/uwsgi.log
4. 再次打开刚才nginx的配置文件,修改以下内容:
server{
    ...
    location /api/ {
        include /etc/nginx/uwsgin_params;
        uwsgi_pass 127.0.0.1:9090;
    }
    ...
}

这里配置这么多的东西,主要是为了让 nginx当检测到路由中有api/(我后台的接口是http:// xxx.xxx.xxx/api/xxx)就将流量通过uwsgi 转发到django 应用程序 ,让django程序处理。
这样就完成了对一套完整的应用程序的处理:静态文件让nginx处理, 静态文件访问后台api, 通过uwsgi转发,让django处理。

遇到的问题和需要注意的地方

  1. 我的前台/后台文件都放在github上,我配置了ssh key,但是在我git push的时候,出现这样的情况:
Can't finish GitHub sharing process

Successfully created project 'Test' on GitHub, but initial commit failed:
*** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. fatal: empty ident name (for (null)>) not allowed during executing git -c core.quotepath=false commit -m "Initial commit" --

意思是让你配置好你的用户名和邮箱。我尝试通过命令

git config --global user.email "you@example.com"  
git config --global user.name "Your Name"

但是没有效果,我就直接修改项目目录下.git(隐藏目录)中的config文件

[user]
    name = XXX(自己的名称)
    email = XXXX(邮箱)
  1. 我的系统是Debian, 数据库是mysql, 当我用普通用户连接数据库时,连接不上,只有root用户才可以,网上找到相关方法点这里

  2. 每次修改完nginx 的配置文件后,需要执行以下命令,让配置文件重新生效

(sudo) nginx -s reload / sudo systemctl reload nginx
标题基于Python的汽车之家网站舆情分析系统研究AI更换标题第1章引言阐述汽车之家网站舆情分析的研究背景、意义、国内外研究现状、论文方法及创新点。1.1研究背景意义说明汽车之家网站舆情分析对汽车行业及消费者的重要性。1.2国内外研究现状概述国内外在汽车舆情分析领域的研究进展成果。1.3论文方法及创新点介绍本文采用的研究方法及相较于前人的创新之处。第2章相关理论总结和评述舆情分析、Python编程及网络爬虫相关理论。2.1舆情分析理论阐述舆情分析的基本概念、流程及关键技术。2.2Python编程基础介绍Python语言特点及其在数据分析中的应用。2.3网络爬虫技术说明网络爬虫的原理及在舆情数据收集中的应用。第3章系统设计详细描述基于Python的汽车之家网站舆情分析系统的设计方案。3.1系统架构设计给出系统的整体架构,包括数据收集、处理、分析及展示模块。3.2数据收集模块设计介绍如何利用网络爬虫技术收集汽车之家网站的舆情数据。3.3数据处理分析模块设计阐述数据处理流程及舆情分析算法的选择实现。第4章系统实现测试介绍系统的实现过程及测试方法,确保系统稳定可靠。4.1系统实现环境列出系统实现所需的软件、硬件环境及开发工具。4.2系统实现过程详细描述系统各模块的实现步骤及代码实现细节。4.3系统测试方法介绍系统测试的方法、测试用例及测试结果分析。第5章研究结果分析呈现系统运行结果,分析舆情数据,提出见解。5.1舆情数据可视化展示通过图表等形式展示舆情数据的分布、趋势等特征。5.2舆情分析结果解读对舆情分析结果进行解读,提出对汽车行业的见解。5.3对比方法分析将本系统其他舆情分析系统进行对比,分析优劣。第6章结论展望总结研究成果,提出未来研究方向。6.1研究结论概括本文的主要研究成果及对汽车之家网站舆情分析的贡献。6.2展望指出系统存在的不足及未来改进方向,展望舆情
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值