Nginx简介:Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由俄罗斯的程序设计师Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍

Nginx的优点:Nginx的主要特点是稳定、功能丰富、安装配置简单、低系统资源。Nginx对于反向代理和负载均衡有不错的支持。Nginx不仅仅可以做为Web服务器,还可以做负载均衡服务器、代理服务器和邮件服务器。作为Web服务器来说,相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,Nginx处理静态文件、索引文件,自动索引的效率非常高,体现更高的效率。作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站的运行速度。作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡;Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。安装配置上,Nginx安装简单、配置灵活、配置文件非常简洁(还能够支持perl语法);性能方面,Nginx是专门为性能优化而开发的,非常注重效率。它采用Poll模型,可以支持更多的并发连接,最大可以支持对50000个并发连接数的形影,而且只占用很低的内存资源;可用性方面,Nginx支持热部署,启动速度特别迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级,及时运行数月也无需重新启动,几乎可以做到7*24显示不间断运行。

软件环境:redhat6.5

实验环境:虚拟机三台

                server1:172.25.45.10

                server2:172.25.45.20

                server3:172.25.45.30

            

Lnmp环境的搭建-------Nginx

Nginx的安装:


1
tar  zxf nginx-1.8.0. tar .gz
1
2
3
cd  nginx-1.8.0
yum  install  pcre-devel  openssl-devel  -y
. /configure  --prefix= /usr/local/lnmp/nginx  --with-http_ssl_module --with-http_stub_status_module


1
2
make
make  install
1

vim /root/.bash_profile 


1
source  /root/ .bash_profile  #使新更改的环境变量生效
1
2
3
cd  /usr/local/lnmp/nginx/sbin/
. /nginx   -t   #检测文件是否配置错误 
. /nginx      #启动服务脚本
1

curl -I localhost   #检测http协议提供程序



wKioL1ddhFyy5JzYAACE8tJW_OM069.png

设置开机启动

1

vim /etc/rc.local

 wKioL1dxHbXxDJteAACGOdAjAa4024.png

在最后行添加nginx


1
nginx -s
1
nginx -h

屏蔽nginx的版本:


1
2
rm   -rf   /root/nginx-1 .8.0   /usr/local/lnmp/nginx #把先前编译安装好的版本删除
tar  zxf nginx-1.8.0. tar .gz   #解包 
1

vim /root/nginx-1.8.0/src/core/nginx.h   #伪装版本

wKiom1ddg77A-eGzAAAg9Ktyyz0879.png

将"nginx/"后面的删除


1

vim /root/nginx-1.8.0/auto/cc/gcc  #关闭debug调试


wKiom1ddg-7CA67LAAAMH9dGgEc841.png

注释掉debug模式


重新编译:

cd nginx-1.8.0

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module make make install

make && make install

wKioL1ddhTKwWsMEAACB-6GGaVU912.png


nginx -t #检测文件配置

nginx -s reload #加载配置文件


useradd -s /sbin/nologin/ -d v/usr/local/lnmp/nginx nginx #创建一个nginx用户


vim /usr/local/lnmp/nginx/conf/nginx.conf

user   nginx  nginx   #用户和用户组

worker_processes   2; #cpu进程数,不能超过本机的cpu数


events {

          use  epoll; #采用一步非阻塞模式,apache --select 同步阻塞机制 io服用模型类型

          worker_connections 4096;    #连接数

}


wKioL1ddhZWi9ffAAABWa7TR-nk485.png


开启https:

wKiom1ddhFGDhX_vAABO7GtHmmM140.png


见server{}内的#去掉  在ssl_certificate和ssl_certificate_key后添加上cert.pem


cd /etc/pki/tls/certs/

make cert.pem


wKiom1ddhOqy2WcnAABwe7ma91w862.png


cp cert.pem /usr/local/lnmp/nginx/conf/

nginx -t

nginx -s reload


访问浏览器:

wKiom1ddhQ3if5tTAACSs3bKYGI345.png



nginx 监控小插件:

vim /usr/local/lnmp/nginx/conf/nginx.conf

添加以下内容

wKioL1ddhlWy9H0_AAANdVZI8_A849.png

nginx -t

nginx -s reload


访问浏览器:形式ip/status

wKiom1ddhWGgSQqlAAAyBd91T4o896.png

nginx :负载均衡

server2server3做以下工作:

yum install httpd -y

cd /var/www/html/

echo server2/3.example.com > index.html


vim /usr/local/lnmp/nginx/conf/nginx.conf


添加以下内容


wKiom1ddha7R0drUAAA8LlvkfB0367.png



nginx -t 

nginx -s reload


测试:访问浏览器

wKioL1ddh72wOuKwAABz9DbBLbA599.png

wKiom1ddhrXCketgAAB86u71Hxc855.png


nginx:虚拟主机


vim /usr/local/lnmp/nginx/conf/nginx.conf

添加以下内容

wKiom1ddha7R0drUAAA8LlvkfB0367.png

wKioL1ddh1OirihPAAA-ML6aGAA090.png


nginx -t

nginx -s reload


mkdir /web{1..2}

echo www.linux.org > /web2/index.html

echo www.unix.org  > /web2/index.html

nginx -t
nginx -s reload




测试:访问浏览器


wKioL1ddhyPytSmcAAAlWkRJcoE535.png

wKiom1ddhhbxXUV7AAAmbgXttMo071.png