Nginx源码编译及安装

1. Nginx 介绍

Nginx是 HTTP 和反向代理服务器,邮件代理服务器,以及 Igor Sysoev 最初编写的通用TCP/UDP 代理服务器。在很长一段时间以来,它一直在许多负载重的俄罗斯网站上运行,包括: Yandex,Mail.Ru,VK 和 Rambler。根据Netcraft的说法,Nginx在 2017 年3 月份服务或代理了28.50%的最繁忙的网站。这里有一些成功案例:Netflix,Wordpress.com,FastMail.FM。

Nginx特性

Nginx有什么不同?Nginx使用可扩展的事件驱动架构,而不是更传统的过程驱动架构。这需要更低的内存占用,并且当并发连接扩大时,使内存使用更可预测。在传统的 Web 服务器体系结构中,每个客户端连接作为一个单独的进程或线程处理,随着网站的流行度增加,并发连接数量的增加,Web服务器减慢,延迟了对用户的响应。从技术的角度来看,产生一个单独的进程/线程需要将CPU切换到新的任务并创建一个新的运行时上下文,消耗额外的内存和CPU时间,从而对性能产生负面影响。Nginx开发的目标是实现10倍以上的性能,优化服务器资源的使用,同时也能够扩展和支持网站的动态增长。因此,Nginx成为最知名的模块化,事件驱动,异步,单线程 Web 服务器和 Web 代理之一。Nginx是一个高性能的 Web 和反向代理服务器, 它具有很多非常优越的特性:

作为 Web 服务器

相比 Apache, Nginx使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx为我们选择了 epoll and kqueue 作为开发模型

作为负载均衡服务器

Nginx既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP 代理服务器 对外进行服务。Nginx用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

Nginx架构

处理并发连接的传统的基于进程或线程的模型涉及使用单独的进程或线程处理每个连接,并阻止网络或输入/输出操作。

根据应用,在内存和 CPU 消耗方面可能非常低效。产生一个单独的进程或线程需要准备一个新的运行时环境,包括分配堆和堆栈内存,以及创建新的执行上下文。额外的CPU时间也用于创建这些项目,这可能会导致由于线程在过多的上下文切换上的转机而导致性能下降。所有这些并发症都表现在较老的 Web 服务器架构(如Apache)中。 这是提供丰富的一般应用功能和优化的服务器资源使用之间的一个折衷。

从一开始 Nginx就是一个专门的工具,可以实现更高性能,更密集和经济地使用服务器资源,同时实现网站的动态发展,所以它采用了不同的模式。它实际上受到各种操作系统中高级事件机制的不断发展的启发。发展结果变成是一个模块化的,事件驱动的,异步的,单线程的非阻塞架构的 nginx 代码基础。nginx大量使用复用和事件通知,并专门用于分离进程的特定任务。连接在有限数量的单线程进程称为工作(worker)的高效运行循环中处理。 在每个工作(worker)中, nginx可以处理每秒数千个并发连接和请求

2. Nginx 安装

准备第三方支持库源码:

nginx-1.13.7.tar.gz

openssl-1.1.0g.tar.gz

pcre-8.41.tar.gz

zlib-1.2.11.tar.gz

解压每个包

wget http://nginx.org/download/nginx-1.13.7.tar.gz

wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz

wget http://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz

wget  http://www.zlib.net/zlib-1.2.11.tar.gz

 

$ tar xzvf nginx-1.13.7.tar.gz

$ tar xzvf openssl-1.1.0g.tar.gz

$ tar xzvf pcre-8.41.tar.gz

$ tar xzvf zlib-1.2.11.tar.gz

$ cd nginx-1.13.7

./configure --prefix=/usr/local/nginx/ --with-http_realip_module --with-http_addition_module --with-http_gzip_static_module --with-http_secure_link_module --with-http_stub_status_module --with-stream --with-pcre=/home/alpha/share/nginx/pcre-8.41 --with-zlib=/home/alpha/share/nginx/zlib-1.2.11 --with-openssl=/home/alpha/share/nginx/openssl-1.1.0g

$ make

$ sudo make install

在/usr/local/目录下面, 产生了 nginx 的目录

$ ./sbin/nginx –c ./conf/nginx.conf

参考资料:

【1】https://blog.csdn.net/Move_now/article/details/78373017

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx 是一个高性能、高并发的开源 Web 服务器,它采用事件驱动的异步非阻塞模型,能够快速处理大量并发请求,而且占用资源较少。为了满足不同需求,一些用户可能需要自己编译安装 Nginx编译安装 Nginx 需要进行以下步骤: 1. 首先,需要下载 Nginx 的源代码包。可以从官方网站(https://nginx.org/)上找到最新版本的源代码包,并下载到本地。 2. 下载完成后,将源代码包解压缩到指定的目录中。 3. 接下来,进入到解压缩后的目录中,执行 `./configure` 命令进行配置。该命令会检查当前系统的环境依赖是否满足,并生成构建 Nginx 的 Makefile 文件。 4. 执行 `make` 命令进行编译。该命令会根据保存在 Makefile 文件中的指令,编译生成可执行文件。 5. 编译完成后,执行 `make install` 命令进行安装。该命令会将编译生成的可执行文件、配置文件和其他必要文件拷贝到指定的目录中。 6. 最后,可以通过启动 Nginx 来验证是否安装成功。执行 `nginx` 命令启动 Nginx,通过访问服务器的 IP 地址或域名,可以在浏览器中看到 Nginx 的欢迎页面。 需要注意的是,在进行源码编译安装之前,应该确保系统环境中已经安装了一些必要的依赖库,如 PCRE(Perl Compatible Regular Expressions,用于处理正则表达式)、zlib(用于处理数据压缩)、OpenSSL(用于提供安全的传输层协议支持)等。 以上是基本的 Nginx 源码编译安装的步骤,具体的配置和安装路径可以根据个人需要进行调整。编译安装可以更灵活地配置和定制 Nginx,满足不同的使用和性能要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值