您的位置:首页 > 运维架构 > Nginx

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

2018-06-03 15:37 656 查看

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需要的各种依赖软件

[root@localhost ~]# yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc gcc-c++

 

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

[root@localhost ~]# wget  http://nginx.org/download/nginx-1.12.1.tar.gz

[root@localhost ~]# tar xf nginx-1.12.1.tar.gz

 

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

[root@localhost ~]# useradd nginx -s /sbin/nologin -M

 

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

[root@localhost ~]# cd nginx-1.12.1

[root@localhost 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

[root@localhost nginx-1.12.1]# make && make install

5、启动Nginx服务

[root@localhost nginx-1.12.1]# /usr/local/nginx-1.12.1/sbin/nginx

[root@localhost 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命令启动

[root@localhost ~]# 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

 

[root@localhost ~]# systemctl enable nginx.service

[root@localhost ~]# 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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx 简介 编译