Nginx 学习笔记(1)

Nginx是什麽?

Nginx简介
Nginx (“engine x”) 就是www服务软件,俄罗斯人用c语言开发的,开源。因为开源,淘宝更改的nginx—> tengine( http://tengine.taobao.org/ ) Nginx 一个轻量级(不到1M)但性能很高的 HTTP和 反向代理服务器,也是一个IMAP/POP3/SMTP 服务器。

Nginx服务端支持的平台

Unix,Linux,Windows都可以。

Nginx的特点

  1. 配置简单,灵活,轻量;
  2. 静态小文件;(一款只能解析静态资源的软件,如:html,js,css,jpg)web服务器。
  3. 支持高并发;
  4. 占用资源少;eg: 3w并发量,10个进程,消耗内存才150M。
  5. 功能种类比较多,但每一个功能都不特别强。
  6. 支持高并发是得益于nginx支持epoll网络IO模型。(apache使用select模型)
  7. Nginx 可以配合动态服务,(FASTCGI接口)
  8. 利用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   进入/查看目录
命令3mkdir -p /usr/local/software/package 创建目录

这里写图片描述

步骤4:下载Nginx到package目录

命令1:wget http://nginx.org/download/nginx-1.12.2.tar.gz

这里写图片描述

命令2ls 查看所在目录是否已经存在下载文件

这里写图片描述

步骤5:解压下载好的压缩文件

命令1:tar -zxvf nginx-1.12.2.tar.gz  此命令执行过程中输出很大
命令2:tar -xf nginx-1.12.2.tar.gz  0输出

这里写图片描述

这里写图片描述

命令3ls 查看解压之后的文件中都有些什麽 

这里写图片描述

步骤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:正式安装

令1make令2make install

这里写图片描述

这里写图片描述

这里写图片描述

步骤9:建用户(虚拟用户,启动Nginx需要)

特别说明:这部分之前安装的时候忘了截图,后面重新安装的时候补上的,所以路径有些不同

命令1:useradd nginx -s /sbin/nologin -M 虚拟用户不能登录,仅仅满足nginx启动服务的一个用户

这里写图片描述

命令2id 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

命令1kill –INT 进程号

这里写图片描述

卸载Nginx

tar包安装的话可以直接删除安装的文件夹

命令1:rm -rf /usr/local/software/nginx

其他

Nginx信号控制

  • TERM, INT 快速停止(杀死进程)
  • QUIT 优雅的关闭进程,即等请求结束后再关闭
  • HUP 改变配置文件,平滑的重读配置文件
  • USR1重读日志,在日志按月/日分割时有用
  • USR2平滑的升级
  • WINCH优雅关闭旧的进程(配合USR2进行升级)

猜你喜欢

转载自blog.csdn.net/yuki5233/article/details/78572078