Nginx工作原理
Nginx Web服务器主要是由各种模块协同工作,模块从结构上分为核心模块,基础模块和第三方模块,其中三类模块分别如下:
1、核心模块:HTTP模块、event模块和mail模块等
2、基础模块:Http access模块、Http FastCGI模块、Http proxy模块和HTTP rewrite模块
3、第三方模块: Http upstream request hash模块、 notice模块和 Http access key模块、 limit_req模块等
Nginx的模块从功能上分为如下三类
1、handlers(处理器模块):此类模块直接处理请求,并进行输出内容和修改 headers信息等操作, handlers处理器模块一般只能有一个。
2、filters(过滤器模块):此类模块主要对其他处理器模块输出的内容进行修改操作,最后由 Nginx输出。
3、proxies(代理类模块):此类模块是 Nginx的 Http upstream之类的模块,这些模块主要与后端一些服务比如 Fast CGI等进行交互,实现服务代理和负载均衡等功能。
Nginx由内核和模块组成,其中内核的设计非常微小和简洁,完成的工作也非常简单仅是通过查找配置文件将客户端的请求映射到一个 location block,而 location是 Nginx配置中的一个指令,用于访问的URL匹配,而 location中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx安装条件
Nginx Web安装时可以指定很多的模块,默认需要安装 rewrite模块,需要系统有PCRE库,安装PCRE支持 rewrite功能,以下为安装 Nginx Web服务器的方法,注意Nginx整合PCRE库,需要指定PCRE源码目录,而不是PCRE编译完成之后的路径,否则会报错。
****安装比PCRE库支持
yum install pcre-devel pcre -y
还要在linux安装其它依赖包
yum install gcc-c++
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
Nginx安装步骤:
1、下载nginx源码包
cd /usr/src
wget -c http://nginx.org/download/nginx-1.12.0.tar.gz
2、解压nginx源码包
tar-xzf nginx-1.12.0. tar. gz
进入解压目录,然后sed修改为Nginx版本信息为JWS
cd nginx-1.12. 0
sed -i -e ‘s/1. 12. 0//g’ -e ‘s/nginx//JWS/g’ -e ‘s/“NGINX”/“JWS”/g’ src/core/nginx.h
3、预编译 Nginx
创建用户:useradd www
./configure --user=www --group==www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_moudle
或者
./configure --user=www --group==www --prefix=/usr/local/nginx --with-http_stub_status_module --with-openssl=/usr/lib64/openssl
4、执行make命令进行编译
make
5、安装
make install
启动Nginx服务
检查 Nginx配置文件是否正确,返回OK即正确。代码如下:
[root@bogon /]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
然后启动 Nginx,执行命令/usr/ocal/ nginx/sbin/ nginx按 Enter键即可
[root@bogon ~]# /usr/local/nginx/sbin/nginx
查看进程是否已启动,代码如下:
[root@bogon ~]# ps -ef | grep nginx
root 3679 1 0 May12 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
www 3680 3679 0 May12 ? 00:00:00 nginx: worker process
root 6924 5211 0 06:37 pts/3 00:00:00 grep nginx
关闭nginx
/usr/local/nginx/sbin/nginx -s stop
重新加载设置
/usr/local/nginx/sbin/nginx -s reload
通过浏览器访问 nginx默认测试页面,直接在浏览器上输入虚拟机的ip地址就好。
如果显示不出来,就查看防火墙关了没有,如果没有就关闭。
service iptables stop
[root@song sll]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
service iptables stop 是临时关闭,下次重启虚拟机,防火墙会启动。
刷新页面