Nginx 编译安装

Nginx (“engine x”) 是一个高性能的 HTTP 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服

1Apache服务器和nginx的优缺点:

Apache具有很优秀的性能,而且通过模块可以提供各种丰富的功能。
1)首先Apache对客户端的响应是支持并发的 ,运行httpd这个daemon进程之后,它会同时产生多个子进程/线程,每个子进程/线程分别对客户端的请求进行响应;

Apache两种工作模式:prefork模式与worker模式

prefork每个子进程只有一个线程,效率高但消耗内存大。worker模式每个子进程有多个线程,内存消耗低,但一个线程崩溃会牵连其它同子进程的线程。
2)另外,Apache可以提供静态和动态的服务 ,例如对于PHP的解析不是通过性能较差的CGI实现的而是通过支持PHP的模块来实现的(通常为mod_php5,或者叫做apxs2)
3)缺点:
因此通常称为Apache的这种Serverprocess-based server ,也就是基于多进程的HTTPServer,因为它需要对每个用户请求创建一个子进程/线程进行响应;
这样的缺点是,如果并发的请求非常多(这在大型门户网站是很常见的)就会需要非常多的线程,从而占用极多的系统资源CPU和内存。因此对于并发处理不是Apache的强项。
4)解决方法:
目前来说出现了另一种WebServer,在并发方面表现更加优越,叫做异步服务器。最有名的为NginxLighttpd。所谓的异步服务器是事件驱动程序模式的event-driven,除了用户的并发请求通常只需要一个单一的或者几个线程。因此占用系统资源就非常少。这几种又被称为lightweight web server。举例,对于10,000的并发连接请求,nginx可能仅仅使用几M的内存;而Apache可能需要使用几百M的内存资源。
nginxApache类似都通过各种模块可以对服务器的功能进行丰富的扩展,同样都是通过conf配置文件对各种选项进行配置。对于PHP等,nginx没有内置的模块来对PHP进行支持,而是通过FastCGI来支持的。
nginx则没有自己提供处理PHP的功能,需要通过第三方的模块来提供对PHP进行FastCGI方式的集成。

Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持3000050000个并发请求)。正因为如此,大量提供社交网站、新闻资讯、电子商务以及虚拟主机等服务的企业纷纷选择Ngnix来提供WEB服务。

2Nginx的安装及运行控制:

目前Nginx的最新稳定版本为1.0.8,开发版本为1.1.6,其安装文件可以从官方网站http://www.nginx.org下载,下面以稳定版为例,介绍nginx的安装和运行控制。

编译安装Nginx

1)安装支持软件:

Nginx的配置及运行需要pcrezlib等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Nginx的安装顺利完成。

1.png

2)创建运行用户、组:

Nginx服务程序默认以nobody身份运行,为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性、降低安全风险。如:创建一个名为nginx的用户,不建立宿主目录,也禁止登录到shell环境。

2.png

3)编译安装nginx

释放nginx源码包

3.png

编译前配置:

4.png

注:配置前可以参考:./configure  –help给出说明

–prefix:设定Nginx的安装目录

–user—group:指定Nginx运行用户和组

–with-http_stub_status_module:启用http_stub_status_module模块以支持状态统计

编译:

5.png

安装:

6.png

至此Nginx安装完成,为了使Nginx服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行nginx命令就可以调用Nginx的主程序。

7.png

Nginx的运行控制:

apache的主程序httpd类似,Nginx的主程序也提供了”-t”选项用来对配置文件进行检查,以便找出不当或错误的配置。配置文件nginx.conf默认位于安装目录下的conf/子目录中。若要检查位于其他位置的配置文件,可使用”-c”选项来指定路径。

8.png

启动、停止Nginx

直接运行nginx即可启动Nginx服务器,这种方式将使用默认的配置文件,若要改用其他配置文件,需添加”-c  配置文件路径选项来指定路径。需要注意的是,若服务器中已安装有httpd等其他WEB服务软件,应采取措施避免部突。

9.png

通过检查 Nginx程序的监听状态,或者在浏览器中访问此WEB服务(默认页面将显示“Welcome to nginx!”),可以确认Nginx服务是否正常运行。

或使用elinks浏览器(需安装elinks软件包。yum  -y install  elinks

注意:要在防火墙上允许80端口的通信。

停止Nginx服务:

#Killall  -9  nginx

Nginx进程运行时,PID号默认存放在logs/目录下的nginx.pid文件中,因此若改用kill命令,也可以根据nginx.pid文件中的PID号来进行控制。

为了使Nginx服务的启动、停止、重载等操作更加方便,可以编写Nginx服务脚本,并使用chkconfigservice工具来进行管理,也更加符合管理习惯。

脚本内容如下:

13.png

通过killkillall命令发送HUP信号表示重载配置, 用新的配置开始新的工作进程

关闭旧的工作进程。QUIT信号表示退出进程,KILL信号表示杀死进程。通过”-s”选项指定信号种类。

添加为系统服务。

14.png

这样一来,就可以通过nginx脚本来启动、停止、重启、重载Nginx服务器了。

原创文章,作者:Anhur,如若转载,请注明出处:http://www.178linux.com/67595

(0)
AnhurAnhur
上一篇 2017-02-05
下一篇 2017-02-06

相关推荐

  • N_28正则表达式及vim编辑的一些知识

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ]# who | sort -nu | cut -d” ” -f1 2、取出最后登录到当前系统的用户的相关信息。 ]# who | tail -1 | cut -d” ” -f1 | id 3、取出当前系统上被用户当作其…

    Linux干货 2017-12-16
  • 倒排索引-搜索引擎的基石

    1.概述       在关系数据库系统里,索引是检索数据最有效率的方式,。但对于搜索引起,他它并不能满足其特殊要求:       1)海量数据:搜索引擎面对的是海量数据,像Google,百度这样大型的商业搜索引擎索引都是亿级甚至几千的网页数量 ,面对…

    Linux干货 2015-12-10
  • 软件包管理器之二——YUM介绍及使用

    一、前言     之前我们介绍了RPM的应用(详细请查看http://www.178linux.com/archives/6383),发觉RPM安装软件有一个很繁琐的问题,那就是包与包之间的依赖关系,如果想正常安装和使用软件程序,就必须根据要求一步一步的解决软件之间的依赖关系。那么如果程序使用的包很多,将会很消耗使用人…

    Linux干货 2015-07-21
  • N25-第11周博客作业

    1、详细描述一次加密通讯的过程,结合图示最佳。 第一步:他们需要实现协商好对称加密算法,单向加密算法,公钥加密算法,交换公钥等。 第二步:B用户想要将数据传给A,首先需要使用单向加密算法取出数据的特征码,并用自己的私钥对这段特征码进行加密(数字签名),B用户生成临时对称密钥,并用对称密钥加密整段数据,B用户使用 A用户的公钥加密一次性对称密钥,附加在整段数据…

    Linux干货 2017-05-21
  • 马哥教育网络班N22期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。     [root@zabbix ~]# id $(who | cut -d' ' -f1 | tail -n 1)    &nbs…

    Linux干货 2016-08-30
  • 文本处理三剑客之 Sed

         Sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自…

    2017-08-26