Nginx服务简介及编译安装详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx服务简介及编译安装详解相关的知识,希望对你有一定的参考价值。
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安装包或者上传下载好的安装包到服务器
[roo[email protected] ~]# 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
以上是关于Nginx服务简介及编译安装详解的主要内容,如果未能解决你的问题,请参考以下文章