Nginx 需要的安装环境
如果不知道 linux/centOS 上是否安装了下面的软件,那么先尝试安装 Nginx ,如果安装的过程中出现问题,那么根据错误提示,安装相应的必要环境,例如:
./configure: error: the HTTP rewrite module requires the PCRE library.
./configure: error: the HTTP gzip module requires the zlib library.
- 安装 gcc
安装Nginx
的编译环境gcc
yum install gcc-c++
- 安装 pcre pcre-devel
nginx
的http
模块使用pcre
解析正则表达式,所以安装perl
兼容的正则表达式库
yum install -y pcre pcre-devel
- 安装 zlib
nginx
使用zlib
对http
包的内容进行gzip
yum install -y zlib zlib-devel
- 安装 Open SSL
nginx
不仅支持http
协议,还支持https
(即在ssl
协议上传输http
),如果使用了https
,需要安装OpenSSL
库
yum install -y openssl openssl-devel
Nginx 的安装
解压
tar -zxvf nginx-1.12.2.tar.gz
配置
- 使用默认配置:
cd nginx-1.12.2
./configure
注意:使用默认配置时,nginx
被安装到 /usr/local/nginx
下。
编译、安装
make && make install
配置环境变量
vim /etc/profile
在合适位置添加环境变量
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
重新编译 /etc/profile 文件
source /etc/profile
注意:重新编译文件时,如果会出现下面的问题
[root@pc-server1 nginx]# source /etc/profile
bash: id: command not found
bash: tty: command not found
此时说明在添加环境变量时,有单词写错了,或者是少写了 $PATH
,此时需要重新修改 /etc/profile
文件,修改文件的命令改为
/bin/vi /etc/profile
然后断开 linux
连接,再重新连接即可。
Nginx 的运行
因为将 Nginx
配置到了环境变量中,因此,在任何路径下都可以直接使用 nginx
命令,而不需要进入 nginx
路径下执行。
- 启动
./nginx
- 查看 nginx 进程
ps -ef | grep nginx
- 关闭
nginx -s stop
- 重启
nginx -s reload
- 测试 nginx 配置脚本是否运行正常
通常可以通过这个命令查看 nginx
配置文件的位置
nginx -t
- nginx 开机自启
在 rc.local
文件中加入 /usr/local/nginx/sbin/nginx
vim /etc/rc.local
- nginx 指定配置文件启动
nginx -c /usr/local/nginx/conf/nginx.conf
Nginx特点,为什么要用
- 跨平台:可以在
UNIX、GNU/Linux、BSD、Mac OS X、Solaris
,以及Microsoft Windows
等操作系统中运行。 - 配置简单,非常容易上手。配置风格跟程序开发一样。
- 非阻塞、高并发连接:数据复制时,磁盘
I/O
的第一阶段是非阻塞的。官方测试可以支持5万并发连接。 - 事件驱动:通信机制采用
epoll
模型,支持更大的并发连接。 - 接收用户请求是异步的,即先将用户请求全部接收下来,再一次性发送给后端
web
服务器,极大的减轻后端web
服务器的压力。 - 发送响应报文时,是边接收来自后端
web
服务器的数据,边发送给客户端。 - 网络依赖性低。
Nginx
对网络的依赖程度非常低,理论上讲,只要能够ping
通就可以实施负载均衡,而且可以有效区分内网和外网流量。 - 支持服务器检测。
Nginx
能够根据应用服务器处理页面返回的状态码、超时信息等检测服务器是否出现故障,并及时返回错误的请求重新提交到其它节点上。
Nginx架构
master/worker
结构:
内存消耗小:处理大并发的请求内存消耗非常小。在3万并发连接下,开启10个Nginx
进程才消耗150M内存(15M*10=150M)。使用webbench
做压力测试,在3万并发量下速度依然很快。
成本低廉:Nginx
为开源软件,可以免费使用的。
内置的健康检查功能:如果Nginx Proxy
后端的某台web
服务器宕机了,不会影响前端访问
节省宽带:支持GZIP
压缩,可以添加浏览器本地缓存的Header
头。
稳定性高:用于反向代理,宕机的概率微乎其微。
多进程模型好处:
采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master
进程则很快重新启动新的worker
进程。
注:部分内容来源不记得了,侵删!
来源:CSDN
作者:p7+
链接:https://blog.csdn.net/qq_30038111/article/details/79410354