> 文档中心 > 【Linux】循序渐进学运维-服务篇-nginx入门

【Linux】循序渐进学运维-服务篇-nginx入门

文章目录

      • nginx 介绍
      • nginx最新版本号
      • nginx与apache的对比
          • 1、nginx相对于apache的优点:
          • 2. apache 相对于nginx 的优点:
      • 编译安装nginx
          • 1. 安装依赖包
          • 2. 下载nginx包
          • 3. 解压安装
            • a.解压
            • b. 编译 && 编译安装
            • c. 启动
            • d. 查看是否启动
      • nginx的目录结构
      • 主要的配置参数

nginx 介绍

Nginx (engine x) 是一个轻量的,高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫所研发,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,Nginx 1.0.4发布。

其特点是占有内存少,并发能力强, nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

在高连接并发的情况下,Nginx是Apache服务器不错的替代品。

[root@gaosh-1 nginx]# curl -I  www.zmkjedu.comHTTP/1.1 200 OKDate: Thu, 30 Jul 2020 14:28:24 GMTServer: Apache/2.4.16 (Unix) OpenSSL/1.0.2k-fips PHP/7.3.6X-Powered-By: PHP/7.3.6Link: <https://www.zmkjedu.com/index.php/wp-json/>; rel="https://api.w.org/"Content-Type: text/html; charset=UTF-8[root@gaosh-1 nginx]# curl -I  www.taobao.comHTTP/1.1 301 Moved PermanentlyServer: TengineDate: Thu, 30 Jul 2020 14:29:01 GMTContent-Type: text/htmlContent-Length: 278Connection: keep-aliveLocation: https://www.taobao.com/Via: cache4.cn1003[,0]Timing-Allow-Origin: *EagleId: b7cb179815961193410258113e

Tengine:
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网、天猫商城等得到了很好的检验。(可以这样理解:淘宝网拿到了Nginx源代码之后,进行了功能的填充、优化等等,然后提交给Nginx官方,但是由于Nginx官方相应慢甚至不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打包,在遵循GPL的原则上进行二次开发,于是就出了现在的Tengine这个版本)。

官网网站:http://tengine.taobao.org/

nginx最新版本号

网址: http://nginx.org/
在这里插入图片描述

nginx与apache的对比

我们前面的n多篇文章其实都是在使用apache,那么apache有nginx有什么区别呢?

1、nginx相对于apache的优点:
  • 轻量级,同样起web 服务,比apache 占用更少的内存及资源

  • 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能

  • 高度模块化的设计,编写模块相对简单

  • 社区活跃,各种高性能模块出品迅速

  • 高并发场景下,nginx可以支持50000个并发连接数的响应

  • nginx适合做静态和反向代理

2. apache 相对于nginx 的优点:
  • rewrite功能 ,比nginx 的rewrite 强大

  • 模块超多,基本想到的都可以找到

  • 少bug ,nginx 的bug 相对较多

  • apache处理动态请求能力比nginx好

但nginx的缺点是只支持http,https,mail协议,对后端的健康检查只能通过端口来检测,不支持通过url检测,不支持session直接保持。

编译安装nginx

1. 安装依赖包

[root@gaosh-1 ~]# yum -y install gcc gcc-c++ pcre-devel openssl-devel wget

2. 下载nginx包

[root@gaosh-1 ~]# wget http://nginx.org/download/nginx-1.12.2.tar.gz

3. 解压安装
a.解压
[root@gaosh-1 ~]# tar xf nginx-1.12.2.tar.gz [root@gaosh-1 ~]# cd nginx-1.12.2[root@gaosh-1 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx   ##环境检测  
b. 编译 && 编译安装

[root@gaosh-1 nginx-1.12.2]# make && make install

c. 启动
[root@gaosh-1 nginx-1.12.2]# ln -sv /usr/local/nginx/sbin/nginx /usr/bin/nginx"/usr/bin/nginx" -> "/usr/local/nginx/sbin/nginx"     ##做软链接设置启动命令[root@gaosh-1 nginx-1.12.2]# nginx  ## 启动[root@gaosh-1 nginx-1.12.2]# nginx -t  ## 检查配置文件的语法nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@gaosh-1 nginx-1.12.2]# 
d. 查看是否启动
[root@gaosh-1 nginx-1.12.2]# ps -ef |grep nginx   ## 查看进程root      47664      1  0 21:16 ? 00:00:00 nginx: master process nginxnobody    47665  47664  0 21:16 ? 00:00:00 nginx: worker processroot      47670  45168  0 21:17 pts/2    00:00:00 grep nginx[root@gaosh-1 nginx-1.12.2]# [root@gaosh-1 nginx-1.12.2]# nginx -s stop   ## 关闭nginx[root@gaosh-1 nginx-1.12.2]# ps -ef |grep nginxroot      47675  45168  0 21:18 pts/2    00:00:00 grep nginx[root@gaosh-1 nginx-1.12.2]# [root@gaosh-1 nginx-1.12.2]# nginx   ## 启动nginx[root@gaosh-1 nginx-1.12.2]# nginx -s reload   ## 重新加载配置文件[root@gaosh-1 nginx-1.12.2]# 

nginx的目录结构

```objectivec[root@gaosh-1 nginx-1.12.2]# cd /usr/local/nginx/[root@gaosh-1 nginx]# lsclient_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp

在这里插入图片描述

主要的配置参数

[root@ gaosh-01 ~]# cat /usr/local/nginx/conf/nginx.conf(1)user  nginx;  #配置运行nginx的用户(2)worker_processes  2; #初始的子进程数量(3)worker_connections  1024; #配置单个进程处理的最大请求连接数(4)server{  #配置虚拟主机(5)listen#配置虚拟主机监听端口(6)server_name #配置服务器域名(7)location  匹配规则 { }   #配置匹配特定的url(8)root   #配置网站根目录(9)index  #配置虚拟主机的默认首页(10)error_page  404/404.html; #解释:当出现404的时候,要重定向到网站根目录下的404.html页面}

location匹配规则

= 开头表示精确匹配
^~ 开头表示 uri 以某个常规字符串开头,理解为匹配 url 路径即可。nginx 不对 url 做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)
~ 开头表示区分大小写的正则匹配
~* 开头表示不区分大小写的正则匹配
/ 通用匹配,任何请求都会匹配到