Nginx是什麽?
Nginx简介
Nginx (“engine x”) 就是www服务软件,俄罗斯人用c语言开发的,开源。因为开源,淘宝更改的nginx—> tengine( http://tengine.taobao.org/ ) Nginx 一个轻量级(不到1M)但性能很高的 HTTP和 反向代理服务器,也是一个IMAP/POP3/SMTP 服务器。
Nginx服务端支持的平台
Unix,Linux,Windows都可以。
Nginx的特点
- 配置简单,灵活,轻量;
- 静态小文件;(一款只能解析静态资源的软件,如:html,js,css,jpg)web服务器。
- 支持高并发;
- 占用资源少;eg: 3w并发量,10个进程,消耗内存才150M。
- 功能种类比较多,但每一个功能都不特别强。
- 支持高并发是得益于nginx支持epoll网络IO模型。(apache使用select模型)
- Nginx 可以配合动态服务,(FASTCGI接口)
- 利用nginx可以对IP限制速度,可以限制链接的个数。
Nginx服务端支持的平台
- a. www web服务,邮件服务,邮件代理
- b. 负载均衡(反向代理proxy)
- c. web cache(web缓存)
Nginx支持的常见虚拟主机
注意:一个server标签段就是一个虚拟主机。一般都是一个服务器下面有多个域名。
一个集群下面有多个这样的服务器。
- 1.基于域名的虚拟主机。通过域名来区分虚拟主机。主要应用于外部网站。*
- 2.基于端口的虚拟主机。通过端口来区分虚拟主机。主要应用于内部网站。**
- 3.基于IP的虚拟主机。因为不好记几乎不用。
为什麽要学习Nginx?
根据下列网站调查显示:Nginx现在全球排名第三,现在市场占有率达35.9%,并且持上升趋势;
http://www.ha97.com/3996.html
https://www.oschina.net/news/90109/october-2017-web-server-survey
https://w3techs.com/technologies/overview/web_server/all
其实国内网站应用nginx更多一些,我们一起来看一下:
梯子:https://tizi.in/ (有需要翻墙的朋友可以访问此网站~)
新浪:http://www.sina.com/
网易: http://www.163.com/
菜鸟教程:http://www.runoob.com/
淘宝:https://world.taobao.com/
打开linux终端—–>使用命令:curl -I 网址 —> 抓取网页(-I参数 查看http响应头处理)
下面我们一起来学习奇妙的Nginx~~~
Nginx安装环境?
Pcre安装环境
因为 http rewrite module(伪静态/URI改写) requires the PCRE library.
所以安装Nginx之前需要安装环境PCRE(Perl Compatible Regular Expressions)perl兼容的正则表达式。
官方站点: http://www.pcre.org/
命令1:rpm -qa pcre pcre-devel 查看是否存在pcre 和 pcre-devel这两个包是否存在
命令2:yum install pcre pcre-devel -y 安装所缺的库
命令3:rpm -qa pcre pcre-devel 再次查看是否存将pcre 和 pcre-devel这两个包安装成功
到此,安装环境准备完毕。
Nginx如何安装?
首先查看是否已经安装了Nginx
命令1:rpm -qa nginx
命令2:rpm -qa|grep nginx
编译安装比yum安装更灵活
步骤1:找到安装资源—进入官网 http://nginx.org
步骤2:复制链接地址 http://nginx.org/download/nginx-1.12.2.tar.gz
步骤3:查看/创建下载文件的路径:我准备存放到/usr/local/software/package/
命令1:pwd 查看当前所在的目录
命令2:cd /usr/local/software/package 进入/查看目录
命令3:mkdir -p /usr/local/software/package 创建目录
步骤4:下载Nginx到package目录
命令1:wget http://nginx.org/download/nginx-1.12.2.tar.gz
命令2:ls 查看所在目录是否已经存在下载文件
步骤5:解压下载好的压缩文件
命令1:tar -zxvf nginx-1.12.2.tar.gz 此命令执行过程中输出很大
命令2:tar -xf nginx-1.12.2.tar.gz 0输出
命令3:ls 查看解压之后的文件中都有些什麽
步骤6:配置参数
命令1:./configure --help 查看需要编译的参数
命令2:ll 显示上面参数的总个数
步骤7:接着自定义配置需要的各个参数
命令:./configure --prefix=/usr/local/software/nginx --user=nginx --with-http_ssl_module --with-http_stub_status_module
- 第一部分:./configure –prefix=/usr/local/software/nginx;表示将Nginx安装到哪个位置
- 第二部分:–user=nginx 指定用户
- 第三部分:–group=nginx指定组
- 第四部分: –with-http_ssl_module 安全性考虑加密
- 第五部分:–with-http_stub_status_module 监控–查看状态
如果输入有error字样,表示配置参数时出错。需要仔细阅读错误信息。
解决办法:安装缺少的library
命令:yum -y install openssl openssl-devel
再次执行之前的命令:
./configure --prefix=/usr/local/software/nginx --user=nginx --with-http_ssl_module --with-http_stub_status_module
步骤8:正式安装
命令1:make
命令2:make install
步骤9:建用户(虚拟用户,启动Nginx需要)
特别说明:这部分之前安装的时候忘了截图,后面重新安装的时候补上的,所以路径有些不同
命令1:useradd nginx -s /sbin/nologin -M 虚拟用户不能登录,仅仅满足nginx启动服务的一个用户
命令2:id nginx 查看用户和组的情况
命令3:ll 安装路径/ -ld
Nginx启动
查看安装目录—>了解安装文件的作用
命令1:cd /usr/local/software/nginx
命令2:ls
蓝色的部分表示安装路径下的文件,这些文件都有各自的作用。
- conf 存放配置文件
- html 网页文件
- logs 存放日志
- sbin shell启动、停止等脚本
启动Nginx
命令1:/usr/local/software/nginx/sbin/nginx
或者 /usr/local//software/nginx/sbin/nginx -s reload(平滑重启)
命令2:ps aux|grep nginx
常见问题
1.端口号被占用
解决办法:
命令1:lsof -i:80 查看是哪些进程占用了80端口号
命令2: netstat -anop|grep pid 通过PID进程号查看端口号
停止Nginx
杀死进程,停止Nginx
命令1:kill –INT 进程号
卸载Nginx
tar包安装的话可以直接删除安装的文件夹
命令1:rm -rf /usr/local/software/nginx
其他
Nginx信号控制
- TERM, INT 快速停止(杀死进程)
- QUIT 优雅的关闭进程,即等请求结束后再关闭
- HUP 改变配置文件,平滑的重读配置文件
- USR1重读日志,在日志按月/日分割时有用
- USR2平滑的升级
- WINCH优雅关闭旧的进程(配合USR2进行升级)