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

Nginx源码编译及安装相关推荐

  1. nginx 源码编译、安装

    nginx 源码编译安装 下载Nginx安装包,Nginx 官网下载,并解压 cd /usr/local/src wget http://nginx.org/download/nginx-1.21.5 ...

  2. Nginx 源码编译安装

    Nginx 源码编译安装环境 Centos7 Nginx1.8.1    下载地址:http://nginx.org/download/ 选择自己想要的版本 我这边使用1.8.1,下载地址:http: ...

  3. Nginx基础篇-Nginx 源码编译安装与平滑升级

    Nginx基础篇-Nginx 源码编译安装与平滑升级 Nginx官网下载地址 http://nginx.org/ 1.安装依赖包 yum -y install pcre-devel zlib-deve ...

  4. nginx源码编译、负载均衡及模块的扩展

    1.nginx源码编译 实验环境: iptables和selinux关闭 redhat6.5 nginx:test1: 172.25.1.11 [root@test1 ~]# ls nginx-1.1 ...

  5. Nginx 源码编译

    1.首先在官网下载Nginx 发布版的源码, Nginx 官网下载的地址是 :http://www.nginx.org/en/download.html 因为Nginx官网支持SVN,可以简单方便的使 ...

  6. nginx(一):nginx源码编译

    nginx源码编译 Nginx服务器编译安装 nginx命令: nginx的./configure预编译参数:https://nginx.org/en/docs/configure.html 1.ng ...

  7. ubuntu 环境下调试mysql源码_【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装

    Ubuntu 16.04下 Mysql5.7.17源码编译与安装 系统环境 一. 系统安装条件 1.cmake MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数. sudo ...

  8. 源码编译构建安装内核kernel

    源码编译构建安装内核kernel 荣涛 2021年10月27日 文档修改日志 日期 修改内容 修改人 备注 2021年10月27日 创建 荣涛 2021年10月28日 添加可能的问题 荣涛 1. 引言 ...

  9. ROS2 Dashing源码编译和安装

    ROS2 Dashing源码编译和安装 安装前的准备 1 2 3 4 5 官方教程: https://index.ros.org/doc/ros2/Installation/Dashing/Linux ...

  10. Atlas 2.2.0源码编译及安装步骤

    Atlas 2.2.0源码编译及安装步骤 一.源码编译 1. 下载源码 2. 前置环境安装 3. 修改版本号 4. 修改源码中 atlas与kafka版本兼容问题 5. 开始编译 6. 问题锦集 二. ...

最新文章

  1. 总结:一些关于 CPU 的基本知识
  2. Ksenia and Pan Scales(思维题)
  3. simulink怎么生成vxworks的执行程序_Matlab/Simulink基础了解(五):基础Simulink模型搭建及Embedded基础使用...
  4. 如何参悟Java的三大框架
  5. .NET中的异步编程——常见的错误和最佳实践
  6. Vue-Cli3配置多页面应用(详)
  7. 突然想起今天的博客汇报没写
  8. linux pid t 头文件_Linux中 pid_t 类型的定义.
  9. Hadoop HA架构图
  10. 树莓派接3.5mm音响没有声音及音量调节
  11. 线段树(lazy用法)
  12. directshow(directShow多个usb摄像头方案)
  13. 爬取百度 《一人之下》 贴吧
  14. 激光功率的测量方案和设备
  15. 认知MOS管-必懂MOS管11个基础知识点及分析
  16. Qt/C++ 压缩/解压缩库—QuaZip
  17. LoRa技术的行业发展前景如何?
  18. freeline集成
  19. 假期自学编程没有学习路线?
  20. html旋转的等到的圆圈,CSS3 Loading 旋转圆盘加载动画

热门文章

  1. tensorflow构建CNN模型时的常用接口函数
  2. slice()和splice()、split(),number()、parseInt()和parseFloat()
  3. GoogleAdSense高价关键字排行榜
  4. zabbix详解(十二)——zabbix监控MySQL主从状态实战
  5. IPv6各地址计算方式汇总
  6. HDOJ--1598--find the most comfortable road(并查集+枚举)
  7. NYOJ--364--田忌赛马
  8. 基于Vue2.0+Vuex+Axios+NodeJs+Express+MySQL实现京东移动web商城
  9. Navicat Premium11连接Oracle出现ORA-28547:connection to server failed
  10. 爬虫基本知识(转载)