Nginx服务简介及编译安装详解

一、Nginx简介

Nginx是一个自由、开源、高性能及轻量级的HTTP服务器及反向代理服务器,其性能与IMAP/POP3代理服务器相当。Nginx以其高性能、稳定、功能丰富、配置简单及占用系统资源少而著称。Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多

二、Nginx工作原理

Nginx由内核和模块组成,完成工作是通过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令),location配置的命令会启动不同模块完成工作。Nginx模块分为核心模块,基础模块和第三方模块。

1、核心模块包括:HTTP模块、EVENT模块(事件)、MAIL模块。

2、基础模块包括:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块、HTTP Rewrit模块。

3、第三方模块包括:HTTP Upstream Request Hash模块、Notice模块、HTTP Access Key模块。

三、Nginx的性能优势

1、Nginx作为web服务器可以快速处理静态文件、索引文件以及自动索引效率高。

2、Nginx作为代理服务器可以进行快速高效的反向代理,提升网站性能。

3、Nginx作为负载均衡器既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理服务器对外进行服务。同时支持简单容错和利用算法进行负载均衡。

4、Nginx在性能方面,Nginx专为性能优化而开发,性能是其最重要的考量, 实现上非常注重效率。它支持内核Poll模型,能经受高负载的考验, 有报告表明能支持高达 50000 个并发连接数,并在大并发时占用很低内存。

5、Nginx在稳定性方面,采用分阶段资源分配技术,使CPU资源占用率低。官方表示保持10000个没有活动的连接,它只占2.5M内存,就稳定性而言, nginx比lighthttpd更胜一筹。

6、Nginx在高可用性方面,Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。

四、编译安装Nginx步骤详解

本次Nginx是在CentOS7.3上进行安装的。

1、先安装Nginx需要的各种依赖软件

[[email protected] ~]# yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc gcc-c++

2、下载Nginx安装包或者上传下载好的安装包到服务器

[[email protected]ocalhost ~]# wget  http://nginx.org/download/nginx-1.12.1.tar.gz

[[email protected] ~]# tar xf nginx-1.12.1.tar.gz

3、创建Nginx运行的用户和组(组在创建用户时默认已经创建)

[[email protected] ~]# useradd nginx -s /sbin/nologin -M

4、编译Nginx需要用到的模块参数

[[email protected] ~]# cd nginx-1.12.1

[[email protected] nginx-1.12.1]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.12.1 --with-http_stub_status_module --with-http_ssl_module

[[email protected] nginx-1.12.1]# make && make install

5、启动Nginx服务

[[email protected] nginx-1.12.1]# /usr/local/nginx-1.12.1/sbin/nginx

[[email protected] nginx-1.12.1]# netstat -antp | grep 80

tcp    0   0 0.0.0.0:80     0.0.0.0:*      LISTEN     4627/nginx: master

五、编写Nginx启动文件并设置开机自启

1、编写Nginx启动文件,使Nginx可以使用systemctl命令启动

[[email protected] ~]# vim /usr/lib/systemd/system/nginx.service

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

PIDFile=/usr/local/nginx-1.12.1/logs/nginx.pid

ExecStart=/usr/local/nginx-1.12.1/sbin/nginx

ExecReload=/usr/local/nginx-1.12.1/sbin/nginx -s reload

ExecStop=/usr/local/nginx-1.12.1/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

[[email protected] ~]# systemctl enable nginx.service

[[email protected] ~]# systemctl start nginx.service

2、编写的配置文件说明

[Unit]:服务的说明

Description:描述服务

After:依赖,当依赖的服务启动之后再启动自定义的服务

[Service]服务运行参数的设置

Type=forking是后台运行的形式

ExecStart为服务的具体运行命令

ExecReload为重启命令

ExecStop为停止命令

PrivateTmp=True表示给服务分配独立的临时空间

注意:启动、重启、停止命令全部要求使用绝对路径

[Install]服务安装的相关设置,可设置为多用户

3、相关命令说明

启动nginx服务

systemctl start nginx.service

设置开机自动启动

systemctl enable nginx.service

停止开机自动启动

systemctl disable nginx.service

查看状态

systemctl status nginx.service

重启服务

systemctl restart nginx.service

查看所有服务

systemctl list-units --type=service

原文地址:http://blog.51cto.com/longlei/2123840

时间: 2024-08-06 14:53:31

Nginx服务简介及编译安装详解的相关文章

Apache服务简介及编译安装详解

Apache服务简介及编译安装详解 一.Apache简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是目前世界上使用最广泛的一种web server,它以跨平台,高效和稳定而闻名,可以运行在几乎所有广泛使用的计算机平台上.Apache的特点是简单.速度快.性能稳定,并可做代理服务器来使用. Apache是用C语言开发的基于模块化设计的web应用,总体上看起来代码的可读性高于php代码,它的核心代码并不多,大多数的功能都被分割到各种

CentOS程序包管理器rpm、yum以及程序包编译安装详解

一.程序包管理器RPM和Yum简介 程序包管理器:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,可以更方便地实现程序包的安装.升级.卸载和查询等管理操作. rpm软件包管理器(RPM Package Manager):rpm包存在依赖关系,依赖关系复杂,安装时间很长,虽然可以忽略依赖关系,但是可能会导致程序包安装后无法正常使用. yum程序包管理器( Yellow dog Updater, Modified):yum是基于RPM包管理,自动解决程序包间的依赖关系.根据配置文件的资源地

redis服务简介 && redis.conf配置文件详解

#一.redis服务简介 redis是一个key-value存储系统. 和Memcached类似,它支持存储的value类型相对更多(memcached不支持value类型,只支持key),包括string(字符串).list(链表).set(集合)和zset(有序集 合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis 支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中

centOS linux 下nginx编译安装详解

Nginx的官方网站是 www.nginx.org Nginx的下载地址是:http://nginx.org/en/download.html 由 于官网的设计非常简洁不大气不上档次,所以我们可以很容易的找到我们需要的内容.打开页面发现有三个版本,分别是Mainline version(开发版).Stable version(稳定版).Legact version(历史稳定版).在这里我们下载最新的稳定版本nginx-1.6.2. 在安装Nginx之前,我们要确保系统已经安装了gcc,opens

Linux程序管理之rpm,yum,编译安装详解

操作系统:CentOS 6.7 内核版本:2.6.32-573.el6.x86_64 程序编译概念 程序要在机器上运行,就需要编译,编译针对特定的OS平台和硬件平台,编译后的程序只能运行在特定的软硬平台上  交叉编译:        在测试机上针对其他平台进行程序编译 编译过程:        预编译 -> 编译 -> 汇编 -> 链接            链接:生成库调用的头文件            静态链接:程序文件本身集成所需调用的库文件            动态链接:调用标

企业级Nginx服务基础到架构优化详解--25条

1.隐藏nginx header版本号 2.更改源码隐藏软件名称 3.更改nginx默认用户及用户组 4.配置nginx worker进程个数 5.根据CPU核数进行nginx进程优化 6.nginx事件处理模型优化 7.调整Nginx worker单个进程允许的客户端最大连接数 8.配置Nginx worker进程最大打开文件数 9.开启高效的文件传输模式 10.设置连接超时时间 11.上传文件大小设置(动态应用) 12.fastcgi调优(配合PHP引擎动态服务) 13.配置nginx gz

企业级Nginx服务基础到架构优化详解

1.隐藏nginx header版本号 2.更改源码隐藏软件名称 3.更改nginx默认用户及用户组 4.配置nginx worker进程个数 5.根据CPU核数进行nginx进程优化 6.nginx事件处理模型优化 7.调整Nginx worker单个进程允许的客户端最大连接数 8.配置Nginx worker进程最大打开文件数 9.开启高效的文件传输模式 10.设置连接超时时间 11.上传文件大小设置(动态应用) 12.fastcgi调优(配合PHP引擎动态服务) 13.配置nginx gz

MySQL5.6二进制软件包编译安装详解(三)

一.软件环境 [[email protected] ~]# uname -r 3.10.0-862.el7.x86_64 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 二.安装部署过程详解 MySQL安装3种方式:1>rpm包安装应用文件默认安装在/usr/local 目录下2>源码编译需要定制文件路径和参数3> 二进制免编译方式优点是可以指定文件安装路径,不存在依赖

MySql5.5.37编译安装详解

      今天为大家介绍下mysql5.5.37的编译安装方式,在工作中编译安装也是我们常用的一种方式.希望通过这篇文章的介绍,能够给大家提供一个安装思路! 一.创建mysql的安装目录和用户 mkdir -p /usr/local/mysql  #安装mysql mkdir -p /usr/local/mysql/data   #存放数据库 groupadd mysql useradd -r -g mysql mysql 二.yum安装依赖库 yum install gcc-c++ ncur