Nginx的安装使用详解
Nginx是一个HTTP和反向代理服务器,一个邮件代理服务器和一个通用的TCP/UDP代理服务器。
当nginx作为基本服务器功能:
- 提供静态和索引文件,自动索引;打开文件描述符缓存;
- 使用缓存加速反向代理;负载均衡和容错;
- 通过缓存加速的CGI,UWSGI,SCGI和内存缓存服务器来加速支持;负载均衡和容错;
- 模块化架构。筛选器包括压缩,字节范围,分块相应,XSLT,SSl和图像转换筛选器。如果单个页面中的多个SSl包含内容由代理或快速的CGI/uwsgi/SCGI服务器处理,则可以并行处理这些内容;
- 支持HTTP/2,具有加权和基于依赖关系的优先级。
而我们常用在生产环境中常用于nginx的反向代理的特点,来将nginx作为负载均衡服务器,用来搭建集群架构。
linux下Nginx的安装
首先我们要准备好Nginx源码来进行二进制的安装,如果没有包可以去官网上进行下载。
[root@test ~]# yum -y install gcc make pcre-devel openssl-devel
[root@test lnmp_soft]# tar xf nginx-1.12.2.tar.gz
[root@test lnmp_soft]# cd nginx-1.12.2/
[root@test nginx-1.12.2]# ls
auto CHANGES.ru configure html man src
CHANGES conf contrib LICENSE README
[root@test nginx-1.12.2]# ./configure --with-stream --with-http_stub_status_module #必须是要在当前目录下进行./configure配置
# --with-stream模块是添加四层代理模块,可以用来创建其他业务集群,--with-http_stub_status_module此模块可以用来查看网站后台数据。
[root@test nginx-1.12.2]# make && make install #进行编译和安装。
[root@test nginx-1.12.2]# yum install -y php php-rpm #这里我们可以下载php-rpm这个插件可以实现nginx解析php网页内容
在nginx-1.12.2这个文件夹里是拥有configure这个可执行脚本文件,它有很多选项,在待安装的源码目录下使用命令。/configure -help可以输出详细的选项列表。
还可以使用选项–prefix来配置安装目录。
格式例如:
[root@test nginx-1.12.2]# ./configure --prefix==/usr/local/test
上面我们解包的时候并没有指定路径,所以默认会安装在/usr/local/nginx下,这个路径下我们可以执行对nginx的管理
[root@test nginx-1.12.2]# cd /usr/local/nginx/
[root@test nginx]# ls
conf html logs sbin
#这里的conf文件是放置nginx的配置文件的 html文件时放置nginx的网页内容文件的 logs时放置日志的 sbin是放置nginx的执行文件的
对于nginx启动关闭等使用:
[root@test nginx]# sbin/nginx #开启nginx
[root@test nginx]# sbin/nginx -s reload #重启nginx
[root@test nginx]# sbin/nginx -s stop #关闭nginx
Nginx针对与php的解析:
首先我们想要达到进行php网页的解析,就需要到配置文件里面进行更改
[root@test nginx]# vim conf/nginx.conf
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
70 include fastcgi_params;
71 }
#可以将这一行进行更改,将#注释全部删除,将69行删除,将70行fastcgi_params改成fastcgi.conf
最后该为
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
如何的话,他就会去接收php页面的内容并由php-fpm交给php去进行解析,所以php-fpm必须处于开启状态
Nginx搭建集群,实现负载均衡
可以在第34行添加如下内容格式:
upstream web { #创建集群,集群的名字叫做web
server 192.168.4.4:80; #这里说明服务器IP地址和后面的:80代表的是通过80端口
server 192.168.4.5:80; #这里是第二台
}
在添加完成后的第47行进行集群的调用:
location / {
proxy_pass http://web; 调用集群
root html;
index index.html index.htm;
}
然后在进行nginx的重启就可以实现了nginx的集群搭建了,集群默认是以轮询的方式进行访问,之后可以开启nginx集群的一些功能:
集群优化:
upstream web {
server 192.168.4.4:80 weight=2;
server 192.168.4.5:80;
}
#加权功能,权重越大任务的分配了就越大,可以为性能较强的集群主机配置权重
配置健康检查:
upstream web {
server 192.168.4.4:80 max fails=2 fail_timeout=30;
server 192.168.4.5:80;
}
#检测两次如果失败,则认为集群中的主机故障,之后等待30秒再次测试
相同客户机访问相同服务器:
upstream web {
ip_hash;
server 192.168.4.4:80;
server 192.168.4.5:80;
}
#相同客户机访问相同服务器,让一个客户机访问集群时锁定一个后台服务器,避免重复登陆的问题。
添加down标记:
upstream web {
server 192.168.4.4:80;
server 192.168.4.5:80 down;
}
#添加down标记可以让集群主机暂时不参与集群活动
查看网站后台数据
利用之前我们安装的模块–with-http_stubj_module的功能配置nginx。
打开配置文件在local里加入以下内容:
location /status {
stub_status on; #显示后台的数据
allow 192.168.2.5; #允许2.5主机查看
deny all; #拒绝其他主机查看
}
然后就可以利用curl 192.168.2.5/status 进行查看了。
对应内容分别是:
Active connections:当前活动的连接数量(当前又多少用户访问该网站)
Accepts:已经接受客户端的连接总数量。
Handled:已经处理客户端的连接总数量。
Requests:客户端发送的请求数量。
Reading:当前服务器正在读取客户端请求头的数量。
Writing:当前服务器正在写响应信息的数量。
Waiting:当前多少客户端在等待服务器的相应。