什么是Nginx?
参考:Nginx入门
什么是反向代理呢?
我们很多人应该都用过淘宝,要知道每天同时连接到淘宝网站的访问人数已经爆表,单个服务器远远不能满足人民日益增长的购买欲望了,此时就出现了一个大家耳熟能详的名词:分布式部署;
也就是通过部署多台服务器来解决访问人数限制的问题;淘宝网站中大部分功能也是直接使用nginx进行反向代理实现的
上图表示的是全国各地的用户在淘宝客户端发出请求,经过了Nginx 反向代理服务器,nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理。
此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了。Nginx扮演的就是一个反向代理角色。
总结下:反向代理,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息
为什么使用Gunicorn?
参考:gunicorn 详解
flask 自带的 wsgi 不推荐生产环境使用,官方推荐使用其他的 wsgi 服务器进行部署(如 gunicorn )
Flask 自带的开发Web 服务器不够强健、安全和高效,无法在生产环境中使用。在本章,
我们要介绍几种不同的部署方式。
调试器是开发过程中进行问题调试的优秀工具,但其显然不能在生产环境中使用。生产环
境中发生的错误会被静默掉,取而代之的是向用户显示一个500 错误页面。不过幸好错误
的栈跟踪不会完全丢失,因为Flask 会将其写入日志文件。
在程序启动过程中,Flask 会创建一个Python 提供的logging.Logger 类实例,并将其附属
到程序实例上,得到app.logger。在调试模式中,日志记录器会把记录写入终端;但在生
产模式中,默认情况下没有配置日志的处理程序,所以如果不添加处理程序,就不会保存
日志。
电子邮件日志记录器的日志等级被设为logging.ERROR,所以只有发生严重错误时才会发送
电子邮件。通过添加适当的日志处理程序,可以把较轻缓等级的日志消息写入文件、系统
日志或其他的支持方法。这些日志消息的处理方法很大程度上依赖于程序使用的托管平台。
Flask 自带的开发Web 服务器表现很差,因为它不是为生产环境设计的服务器。有两个
可以在生产环境中使用、性能良好且支持Flask 程序的服务器,分别是Gunicorn(http://
gunicorn.org/)和uWSGI(http://uwsgi-docs.readthedocs.org/en/latest/)。
安装
安装Web 服务器。例如,可通过如下命令安装Gunicorn:
(venv) $ pip install gunicorn
某视频教程
CentOS上的操作
查看python版本
python -V
注意V大写
查看pip版本
pip -V
安装gunicorn
pip install gunicorn
CentOS-7安装pip
查看pip版本:pip -v
如果pip安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)):参考文章
使用supervisor
nginx+Gunicorn部署你的Flask项目
首先安装gunicorn
pip install gunicorn
vim编辑test.py
使用gunicorn test:app
运行py文件
在浏览器中访问
LINUX安装nginx详细步骤
1.安装依赖包
//一键安装上面四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2.下载并解压安装包
-
//创建一个文件夹
-
cd /usr/local
-
mkdir nginx
-
cd nginx
-
//下载tar包
-
wget http://nginx.org/download/nginx
-1.13
.7.tar.gz
-
tar -xvf nginx
-1.13
.7.tar.g
3.安装nginx
//进入nginx目录 cd /usr/local/nginx //执行命令 ./configure //执行make命令 make //执行make install命令 make install
4.配置nginx.conf
-
# 打开配置文件
-
vi /usr/local/nginx/conf/nginx.conf
将端口号改成8089,因为可能apeache占用80端口,apeache端口尽量不要修改,我们选择修改nginx端口。
localhost修改为你服务器ip地址。
5.启动nginx
/usr/local/nginx/sbin/nginx -s reload
查看nginx进程是否启动:
ps -ef | grep nginx
6.若想使用外部主机连接上虚拟机访问端口192.168.131.2,需要关闭虚拟机的防火墙:
centOS6及以前版本使用命令: systemctl stop iptables.service
centOS7关闭防火墙命令: systemctl stop firewalld.service
随后访问该ip即可看到nginx界面。
7.访问服务器ip查看
安装完成一般常用命令
进入安装目录中,
命令: cd /usr/local/nginx/sbin
启动,关闭,重启,命令:
./nginx 启动
./nginx -s stop 关闭
./nginx -s reload 重启
访问示例
开启nginx
在虚拟机中使用ifconfig
查看ip地址(我使用的是桥接模式),然后在实体机浏览器中输入虚拟机ip:8089
即可访问到nginx首页