栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【001】Nginx学习笔记-Nginx简介与安装

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【001】Nginx学习笔记-Nginx简介与安装

Nginx简介与安装
  • 1 简介
    • 1.1 历史
    • 1.2 为什么用Nginx
  • 2 安装
    • 2.1 获取Nginx
    • 2.2 编译安装
  • 3 Nginx启动脚本练习
  • Reference

1 简介 1.1 历史

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的.Igor Sysoev在建立的项目时,使用基于BSD许可.自Nginx 发布以来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名.

在俄罗斯许多大网站都已经使用它, 且一直表现不凡.俄罗斯大约有20%左右的虚拟主机是由nignx服务或代理的.Google在线安全博客中统计Nginx服务或代理了大约所有Internet虚拟主机的4%.而Netcraft的统计显示,Nginx服务的主机在过去的一年里以四倍的速度增长并且在这几年里,它的排名还在不断上升

1.2 为什么用Nginx

Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 .它支持内核EPoll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数.

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

  2. Nginx支持热部署,它的启动特别容易,
    并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动.你还能够在不间断服务的情况下,对软件版本进行进行升级.Nginx采用master-slave模型,能够充分利用SMP的优势,且能够减少工作进程在磁盘I/O的阻塞延迟.

  3. Nginx代码质量非常高,代码很规范,手法成熟, 模块扩展也很容易.

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

当然,nginx还很年轻,多多少少存在一些问题,比如:Nginx是俄罗斯人创建,目前文档方面还不是很完善.因为文档大多是俄语,所以文档方面这也是个障碍.尽管Nignx的模块比较多,但它们还不够完善.对脚本的支持力度不够.

2 安装 2.1 获取Nginx

Nginx的官方网站: http://nginx.org/en/download.html
Nginx官网提供了三个类型的版本

  • Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
  • Stable version:最新稳定版,生产环境上建议使用的版本
  • Legacy versions:老版本的稳定版

在这里我们选择nginx 1.18.0版本,因为后面讲学习平滑升级。

2.2 编译安装

准备一台的虚拟机

  1. 停止原有web服务器
    netstat 查看端口是否被占用
  2. 添加普通用户账号来运行nginx
   [root@nginx ~]# useradd -M -s /sbin/nologin nginx
  1. 解压并安装Nginx:
[root@nginx ~]# tar xf nginx-1.18.0.tar.gz
[root@nginx ~]# cd nginx-1.18.0
[root@nginx ~]# yum -y install gcc gcc-c++ pcre-devel vim

[root@nginx ~]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module  --with-http_ssl_module  


--prefix=/usr/local/nginx                 #指定安装路径
--with-http_stub_status_module     #启用service status页,默认不启用
--with-http_ssl_module                    #启用ssl模块,以支持https请求
--sbin-path=/usr/sbin/                     #指定二进制命令的路径

出现以下图片表表示成功

继续

[root@nginx ~]# make && make install

出现以下图片表示安装成功

  1. 启动:
[root@nginx nginx-1.18.0]# /usr/local/nginx/sbin/nginx
nginx命令常用选项:
    -v      查看版本号
    -V      查看版本号及编译选项
    -s      给主进程发送信号.可接 stop | quit | reopen | reload    
    -t      测试配置是否正确
    -c      指定配置文件,默认为 conf/nginx.conf

Tips:
为了避免每次启动都要输入绝对路径,我们创建如下脚本

[root@nginx nginx-1.18.0]# vim /etc/profile.d/nginx.sh

脚本输入如下

执行脚本

[root@nginx nginx-1.18.0]# . /etc/profile.d/nginx.sh
  1. 查看启动状态:
[root@nginx nginx-1.18.0]# netstat -tlnp | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3891/nginx: master
  1. 测试主页是否可以访问

3 Nginx启动脚本练习

写一个nginx启动脚本,以实现可用service管理nginx服务,并可使用chkconfig来管理服务的开机启动。

  • 如果脚本执行时有参数错误,给出帮助信息(start、stop、restart、reload、status、reopen);
  • 如果启动或停止失败,给出具体原因(启动失败的原因可能有:端口被占用,配置文件错误,程序已在运行);
  • 如果配置文件有语法错误,不允许关闭服务。

(待完成)


yum安装的nginx(epel源)
主目录:/etc/nginx
主配置文件:/etc/nginx/nginx.conf
文档目录:/usr/share/nginx/html

Reference
  1. 课堂笔记
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941987.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号