Net分布式系统之三:Vm安装配置Nginx

1、什么是 Nginx前端

  Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。Nginx 是由俄罗斯人 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor Sysoev 在创建的项目时,使用基于 BSD 许可。nginx

英文主页:http://nginx.net 。web

到 2013 年,目前有不少国内网站采用 Nginx 做为 Web 服务器,如国内知名的新浪、16三、腾讯、Discuz、豆瓣等。据 netcraft 统计,Nginx 排名第 3,约占 15% 的份额(参见:http://news.netcraft.com/archives/category/web-server-survey/ )apache

Nginx 以事件驱动的方式编写,因此有很是好的性能,同时也是一个很是高效的反向代理、负载平衡。其拥有匹配 Lighttpd 的性能,同时尚未 Lighttpd 的内存泄漏问题,并且 Lighttpd 的 mod_proxy 也有一些问题而且好久没有更新。vim

如今,Igor 将源代码以类 BSD 许可证的形式发布。Nginx 由于它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名.业界一致认为它是 Apache2.2+mod_proxy_balancer 的轻量级代替者,不只是由于响应静态页面的速度很是快,并且它的模块数量达到 Apache 的近 2/3。对 proxy 和 rewrite 模块的支持很完全,还支持 mod_fcgi、ssl、vhosts ,适合用来作 mongrel clusters 的前端 HTTP 响应。后端


 

2、Nginx 特色缓存

  Nginx 作为 HTTP 服务器,有如下几项基本特性:性能优化

  • 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.
  • 无缓存的反向代理加速,简单的负载均衡和容错.
  • FastCGI,简单的负载均衡和容错.
  • 模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。若是由 FastCGI 或其它代理服务器处理单页中存在的多个 SSI,则这项处理能够并行运行,而不须要相互等待。
  • 支持 SSL 和 TLSSNI.

Nginx 专为性能优化而开发,性能是其最重要的考量,实现上很是注重效率 。它支持内核 Poll 模型,能经受高负载的考验,有报告代表能支持高达 50,000 个并发链接数。服务器

Nginx 具备很高的稳定性。其它 HTTP 服务器,当遇到访问的峰值,或者有人恶意发起慢速链接时,也极可能会致使服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前 apache 一旦上到 200 个以上进程,web响应速度就明显很是缓慢了。而 Nginx 采起了分阶段资源分配技术,使得它的 CPU 与内存占用率很是低。Nginx 官方表示保持 10,000 个没有活动的链接,它只占 2.5M 内存,因此相似 DOS 这样的攻击对 Nginx 来讲基本上是毫无用处的。就稳定性而言,Nginx 比 lighthttpd 更胜一筹。并发

Nginx 支持热部署。它的启动特别容易, 而且几乎能够作到 7*24 不间断运行,即便运行数个月也不须要从新启动。你还可以在不间断服务的状况下,对软件版本进行进行升级。

Nginx 采用 master-slave 模型,可以充分利用 SMP 的优点,且可以减小工做进程在磁盘 I/O 的阻塞延迟。当采用 select()/poll() 调用时,还能够限制每一个进程的链接数。

Nginx 代码质量很是高,代码很规范,手法成熟,模块扩展也很容易。特别值得一提的是强大的 Upstream 与 Filter 链。Upstream 为诸如 reverse proxy,与其余服务器通讯模块的编写奠基了很好的基础。而 Filter 链最酷的部分就是各个 filter 没必要等待前一个 filter 执行完毕。它能够把前一个 filter 的输出作为当前 filter 的输入,这有点像 Unix 的管线。这意味着,一个模块能够开始压缩从后端服务器发送过来的请求,且能够在模块接收完后端服务器的整个请求以前把压缩流转向客户端。

Nginx 采用了一些 os 提供的最新特性如对 sendfile (Linux2.2+),accept-filter (FreeBSD4.1+),TCP_DEFER_ACCEPT (Linux 2.4+)的支持,从而大大提升了性能。

固然,Nginx 还很年轻,多多少少存在一些问题,好比:Nginx 是俄罗斯人建立,虽然前几年文档比较少,可是目前文档方面比较全面,英文资料居多,中文的资料也比较多,并且有专门的书籍和资料可供查找。

Nginx 的做者和社区都在不断的努力完善,咱们有理由相信 Nginx 将继续以高速的增加率来分享轻量级 HTTP 服务器市场,会有一个更美好的将来。


 

1、Nginx安装配置

在CentOS7经过命令行安装Nginx服务器。

  1. 添加Nginx存储,添加epel repository
    sudo yum install epel-release

     

  2. 检查是否安装过Nginx
    find -name nginx

     

  3. 若是有安装则删除
    yum remove nginx

     

  4. 安装Nginx
    sudo yum install nginx

     

  5. 启动Nginx
    sudo systemctl start nginx
    sudo systemctl enable nginx #可用

     

  6. 将Nginx设置为启动系统自动启动
    echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

     

  7. 修改Nginx.conf配置文件
    cd /etc/nginx/ #定位到nginx安装目录
    vim nginx.conf #经过vim打开nginx.conf配置文件进行配置

     

  8. Nginx反向代理及负载均衡配置
    upstream 192.168. 137.128{
    
    server 192.168. 137.1:8081;
    
    server 192.168. 137.1:8082;
    
    }
    
    server{
    
    listen   80;
    
    server_name  192.168.137.128;
    
    location /{
    
    proxy_pass   http://192.168. 137.128;
    
    }
    
    }

     

  9. 重启Nginx服务
    service nginx restart
相关文章
相关标签/搜索