centos 7 django + nginx + uwsgi

首先,因为我们本地是由django项目的,所以安装配置django项目就不多讲解

主要讲解本人这几天配置nginx 和uwsgi 关联时碰到的一些

1,安装uwsgi

安装uwsgi,之前百度试了很多种安装uwsgi的方式,最后总结出本人人文最好的一种

通过pip3安装

pip3 install uwsgi

pip3 list 查看是否安装成功

然后在/usr/bin/下面就是系统配置,你得把你安装好的uwsgi 的环境变量配置进去

所以我们要建立软链接

ln -s /home/ares/.local/bin/uwsgi /usr/bin/uwsgi

前面是指你uwsgi安装的位置,后面是系统环境变量的位置,

如果不知道pip3安装的uwsgi的位置的话,可以在执行一遍pip3 install uwsgi 

那样就可以看到我们pip3包安装的位置了

在我的/usr/bin/下面可以看到我已经添加成功


创建测试文件
安装好后创建一个测试文件test.py,内容如下:


def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]


测试
进入到test.py文件的目录下运行启动命令
uwsgi --http :9999 --wsgi-file test.py

网站能看到Hello World 就代表测试成功,当然你也可以跳过这 直接进行下面的步骤



然后在我们项目目录下面新建一个uwsgi.ini配置文件,本人是在fortress下面新建的

然后里面的配置 

[uwsgi]

# 这里填的是本人服务器的ip以及给uwsgi 的一个端口 端口可以随便设置,不局限于9999 只要不重复都可以
http = 192.168.1.189:9999

# 这个是指向你项目 manage.py 的路径
chdir = /var/lib/jenkins/workspace/build_jobs/fortress

# module 是指向你wsgi.py的路径,就是与你项目setting.py同目录下,通常django都会自带一个wsgi.py文件
module = app.admin.wsgi:application
master = true
processes = 4i
vacuum = true
daemonize = uwsgi.log
pidfile = uwsgi.pid
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=36000
# 设置缓冲
post-buffering=4096

# 设置和nginx 连接时间
socket-timeout=36000
# 设置uwsgi连接时间
http-timeout = 36000


这时候在当前目录下面运行

uwsgi --ini uwsgi.ini 

看见

这样的提示代表你的uwsgi 已经跑起来了

可以通过这条命令查看运行状态 ps -ef |grep uwsgi 

看到这种就代表你的uwsgi以4921的进程号跑起来了  这时候

访问你之前uwsgi.ini 里面配置的http后面的ip地址和端口就可以看见咋们的django 网站了


出现这样代表你的uwsgi 已经配置成功 接下来就是nginx了

2,安装nginx

可以通过yum install nginx 安装nginx

如果中途出现

yum安装报错Error:Nothing to do
报错信息
No package nginx available
Error:Nothing to do
用EPEL方式安装nginx:
sudo yum install epel-release
yum update
yum install nginx

这样就可以安装成功你的 nginx了

whereis nginx 可以看到你的nginx 在哪里

可以看到我们的nginx 启动在/usr/sbin  下面,这时候我们启动nginx ,然后通过ip 访问我们的nginx

这时候会开肩 wecome to xxx一些官方的页面,这时候就代表你的nginx 开启成功了

nginx配置文件在/etc/nginx 下面

查看 /etc/nginx下面的目录可以看到nginx.conf这样的nginx 配置文件

正常你这里面还会又conf.d 这个文件夹,你可以在里面创建一个xxx.conf的文件格式,在这个里面搭建nginx

的配置也可以,因为系统nginx.conf里面引入了conf.d里面的.conf格式的所以文件,本人是直接在nginx.conf里面

搭建的    配置如下

如果你是在conf.d下面的文件搭建的话,你只需要

这一段代码就行

讲解一些 代码的要求

server {
listen 80;
listen [::]:80;

# server_name  你网站的域名,当然也可以写ip
server_name ci.yixzm.cn;

# 你的静态文件的路径,本网站由于做了前后端分离,所以暂时没有前端静态文件,所以后面的public 可有可无,但是由于

#网站正在完善,所以我还是加上了
root /var/lib/jenkins/workspace/build_jobs/fortress/public;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {

# 这一步就很重要了,把你的nginx 和uwsgi关联起来,
include uwsgi_params;

# 这是你之前uwsgi.ini  中http 里面配置的ip,下面一定要和你uwsgi.ini 里面的一样  还有一种是uwsgi_pass 127.0.0.1:3031;

# 这种,不过我发现这种,关联不到uwsgi,后面发现是http协议的事,经过大神肖哥的亲自操刀,改为,下面这种,网站就搭好了
proxy_pass http://192.168.1.189:9999;
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}


这时候我们启动nginx ,下面是uwsgi 和nginx 的一些常用命令

nginx 重启 nginx -s reload
nginx 停止 nginx -s stop
#### 启动:
uwsgi --ini xxx.ini
#### 重启:
uwsgi --reload xxx.pid
#### 停止:
uwsgi --stop xxx.pid

启动之后我们可以看到

通过上面的导航栏,可以看到,这时候我们的网站,后面没有端口号了,这时候nginx 成功代理80端口,而不是uwsgi的9999端口了

下面由本人的一些报错,列出来参考 

Nginx报错:nginx: [error] invalid PID number "" in "/run/nginx.pid" 解决方法
服务器重启之后,执行 nginx -t 是OK的,然而在执行 nginx -s reload 的时候报错
nginx: [error] invalid PID number "" in "/run/nginx.pid"
解决方法:
需要先执行
nginx -c /etc/nginx/nginx.conf
nginx.conf文件的路径可以从nginx -t的返回中找到。
nginx -s reload

--------------------------------------

要是你成功通过nginx 访问到网页的话,通常会出现中文乱码的问题,

这时候你只需要在html中加入 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

并在nginx.conf 中的server中加入

#设置字符集
charset utf-8;

就可以解决乱码的问题了

到这里,nginx+uwsgi+django 就完成了

最后特别感谢我们的大佬---肖哥的 操刀,

本人几天的问题,大佬几十分钟搞定,顶!!!!!

希望看到此文章的各位以后也是能成为这种大佬!!!!




























版权声明

翼安博客


首发 翼安博客,转载请附链接!

赞赏支持

感谢支持!


建站不易,感谢支持!

推荐阅读
web开发技术栈(框架)总结
Bootstrap-Layui-Amazeui-jQuery-vue-react-AngularJS-ci-Thinkphp-Yii-Laravel-Node-Django-springMVC-apache-nginx-mysql-redis…… 天呐,好多…… 小编虽说出身工业软件,但心里一直藏着一个UI梦。近两年,小编业余时间从零开始摸索web开发,把web开发常用的技术和框
3466

PHP7 引入的“??” 和“?:”的区别(三元运算符)
...
708

web前端开发技术储久良第三版第6章练习与实验答案
### [web前端开发技术储久良第三版答案整理(1-9章)](https://www.yixzm.cn/blog/367.html) 练习6 **1.选择题** (1)D (2)A (3)D(4)B **2.填空题** (1)``、``,`` (2)border="0" (3)矩形;圆形;多边形。 3.简答题 (1)设置滚动空白空间就是指滚动文字背景和它周围文字及图像之间的空白空间范围。默认
13766

web前端开发技术储久良第三版第2章练习与实验答案
### [web前端开发技术储久良第三版答案整理(1-9章)](https://www.yixzm.cn/blog/367.html) 练习2 **1.选择题** (1) B (2) D (3) A (4) B (5) A (6) B **2.填空题** (1) html、htm,index.html、default.html (2) head、body (3) 单、双,双,开
14931

web前端开发技术储久良第三版第12章练习与实验答案
### [web前端开发技术储久良第三版答案整理(10-17章)](https://www.yixzm.cn/blog/368.html) ** 1.选择题 ** (1)D (2)C (3)B (4)C (5)A ** 2.填空题 ** (1)post、get (2)浏览器、服务器 (3)``、name、size、multiple (4)textarea、rows、co
17011

web前端开发技术储久良第三版第13章练习与实验答案
### [web前端开发技术储久良第三版答案整理(10-17章)](https://www.yixzm.cn/blog/368.html) 练习13 ** 1.选择题 ** (1)C (2)A (3)D (4)C (5)A (6)D (7)B (8)D (9)C (10)D (11)C (12)A ** 2.填空题 ** (1)input、list、id。 (2) sr
12537

web前端开发技术储久良第三版第11章练习与实验答案
### [web前端开发技术储久良第三版答案整理(10-17章)](https://www.yixzm.cn/blog/368.html) 练习11 **1.选择题** (1)B (2)D (3)D (4)B (5)D (6)B **2.填空题** (1)``、 ``、`` (2) rowspan 、3、 Colspan 、 5 (3) frame、rules (4) cellspa
19039

web前端开发技术储久良第三版第10章练习与实验答案
### [web前端开发技术储久良第三版答案整理(10-17章)](https://www.yixzm.cn/blog/368.html) 练习12 **1.选择题** (1)B (2)A (3)C (4)D (5)A **2.简答题** (1)略 (2) display: none让对象不显示,原来不存在。 display:block—作用是显示特定对象;visibility: visib
21449

web前端开发技术储久良第三版答案整理(下:附录模拟试卷)
[web前端开发技术储久良第三版答案整理(下:附录模拟试卷)_诗和远方_弈心博客](https://www.yixzm.cn/blog/369.html) [web前端开发技术储久良第三版答案整理(中:10-17章)_诗和远方_弈心博客](https://www.yixzm.cn/blog/368.html) [web前端开发技术储久良第三版答案整理(上:1-9章)_诗和远方_弈心博客](ht
7604

web前端开发技术储久良第三版第5章练习与实验答案
### [web前端开发技术储久良第三版答案整理(1-9章)](https://www.yixzm.cn/blog/367.html) 练习5 **1.选择题** (1) D (2) C (3) B (4) C (5) B (6) A (7)B **2.填空题** (1) `href="mailto:someone@mail.com" ` (2) name、“#targe
5113

Web前端开发工程师面试(2020-9-15 面试笔试题目及回答思路指南)
面试题来自某互联网独角兽公司的前端开发工程师岗位面试记录,刚打听到的还很新鲜。 面试官和面试者小编都挺熟悉,所以内容具备一定参考价值。 面试中夹杂笔试,整个过程流程大体如下: ### 1 Q:简单做下自我介绍 A:这里是在问前端技术路线、技术面、技术成长规划,别有的没的讲一堆废话。 ### 2 Q:离职原因是什么? A:这里是问你,哪些原因会导致你离职?你工作的不稳定因素有哪些?你
1854

Web前端开发工程师笔试题(2019-3-28 整理16道,含答案)
前端时间因工作需要,整理了一套笔试题。 网上有许多套题,重复的比较多。出于笔试时间考虑,本文摘取16道,包含了CSS基本使用、时间绑定、定时器、存储、ajax和框架原理等内容。 题目偏简单,覆盖知识点勉强算全面。如果有更好的题目,也欢迎补充。 放着这里,希望能给正在准备面试的朋友们带来一点点价值。 ### 1. 一个200x200的div在不同分辨率屏幕上下左右居中,用css实现: di
2412