本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路
工具:Nginx
用途: Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。应用非常广。
主要功能
1、反向代理
2、负载均衡
3、动静分离
正向代理:
某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。
反向代理:
是用来代理服务器的,代理我们要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(集群化),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。Nginx在反向代理上,提供灵活的功能,可以根据不同的正则采用不同的转发策略。
负载均衡
负载均衡:多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。Nginx可使用的负载均衡策略有:轮询(默认)、权重、ip_hash、url_hash(第三方)、fair(第三方)
动静分离
Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。 Nginx可以根据配置对不同的请求做不同转发,这是动态分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。
开始安装:
Nginx包下载地址: nginx.org/en/download…
安装讲解地址: nginx.org/en/docs/con…
因要启用ssl,所以要安装yum install pcre-devel openssl-devel -y
--with-http_stub_status_module:支持nginx状态查询
--with-http_ssl_module:支持https
--with-pcre:为了支持rewrite重写功能,必须制定pcre
解压、配置、编译安装
./configure --prefix=/usr/local/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-pcre
--with-http_ssl_module
--with-http_stub_status_module
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
make && make install
启动、停止nginx
cd /usr/local/nginx/sbin/
./nginx #启动
./nginx -s reload #重启,一般重新加载配置文件时使用。
./nginx -s quit #此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop #此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
./nginx -v #查看版本信息
./nginx -V #查看模块安装情况
查询nginx进程:
ps aux|grep nginx
netstat -nltp | grep nginx
默认页面文件路径:
--prefix定义的路径中的html文件夹
/usr/local/nginx/html
开机自启动
vi /etc/rc.local
增加一行 /usr/local/nginx/sbin/nginx
设置执行权限:
chmod 755 rc.local
配置状态监控模块
在nginx.conf配置文件中的server{}中粘贴如下模块:
location /nginxstatus{
stub_status on;
access_log on;
auth_basic "nginxstatus";
}
重启后使用http://192.168.100.9/nginxstatus访问
Active connections: 2
server accepts handled requests
3 3 19
Reading: 0 Writing: 1 Waiting: 1
nginx status详解
active connections – 活跃的连接数量
server accepts handled requests — 总共处理了3个连接 , 成功创建3次握手, 总共处理了19个请求
reading — 读取客户端的连接数.
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.