根据 W3Tech 的统计,Apache 是 2016 年使用最广泛的网络服务器,在所有网站运营商中占据超过 50% 的市场份额。 然而,如果对这些数字采取不同的观点,并且只考虑前 10,000 个访问量最大的网站,那么就会描绘出一幅不同的图景:这些网站中只有大约 30% 使用了 1995 年以来的服务器技术。 前 1,000 个常用服务器,这个数字缩小到只有 27%。
这个数字可以部分解释为运行中的谷歌网络服务器数量过高(大约 10%),所有谷歌页面都在其上运行。 然而,另一个原因可以归因于俄罗斯网络服务器 Nginx 的迅速崛起。 就在 2010 年,Nginx 还只是众多 Apache 替代品之一,市场份额徘徊在区区 4% 左右。 如今,BSD 许可的软件目前正在分别用于排名前 10,000 和 1,000 的所有其他 Web 项目。
Nginx 安装和设置
什么是 Nginx?
俄罗斯软件工程师 Igor Sysoev 是 2004 年发布服务器软件的主要幕后推手。 与今天的情况一样,当时的主要重点是开发一种性能异常高的服务器,该服务器能够在不使用太多资源的情况下为尽可能多的客户端提供服务。 由于服务器越来越受欢迎,Sysoev 于 2011 年创办了 NGINX Inc.,此后一直负责软件的持续开发。 除了免费的标准版本外,该公司还提供 NGINX plus,这是一个收费的选项,具有支持和附加功能,例如改进的负载平衡。
与 Apache 一样,NGINX 也是模块化构建的。 这意味着它的许多不同功能都可以通过相应的模块使用,管理员可以激活或停用这些模块。 以下是您可以使用的一些功能的列表:
- 应用加速:让内容更快速的展现
- 反向代理:允许 NGINX 用作用于 Web 加速目的的反向代理(HTTP、TCP、UDP)或用作电子邮件代理(MAP、POP3、SMTP)
- TLS 加密:实现安全数据传输
- 带宽管理:为所有服务提供最佳带宽
- 负载均衡:通通过重定向请求减轻主服务器的负担
- 流式传输 MP4 和 FLV 媒体时提供高操作性能的视频流。
Apache 为每个客户端请求打开一个新的线程或进程,而 Nginx 服务器以面向事件的方式运行。 这允许异步处理请求,从而节省工作内存和时间。 服务器软件还受一系列操作系统支持,包括众多 Unix/Linux 变体,包括 Mac OS 和 Windows 服务器。
安装和配置 Nginx
那些选择了 plus 添加的人将通过 Nginx 支持完成安装过程。 然而,通常情况下,安装是根据数据包管理器臭名昭著的模式进行的,因为大多数 Linux 发行版默认在其存储库中包含 Nginx 数据包。 万一包丢失,可以从 Nginx 官网(点击访问)快速方便地下载源代码。 在下面的步骤中,大眼仔将向您展示如何在 Linux 下安装和配置 Web 服务器。
1、使用以下命令更新数据包管理器,以便您的系统在安装后恢复到最新版本的 Nginx 数据包:
1
2 |
sudo apt-get update
sudo apt-get install nginx |
2、Nginx 通常在第一步之后立即启动。 为了检查软件是否正常运行,只需在浏览器中通过服务器域名或公网 IP 地址调出 Nginx 登陆页面即可。
3、配置 Nginx 所需的一切都可以在目录 /etc/nginx 或中央配置文件 nginx.conf 中找到。 每当您最终对此文件进行更改时,您都需要使用以下两个命令之一重新启动服务器,以便接受这些更改:
1
2 |
sudo service nginx reload
sudo service nginx restart |
4、配置文件的语法有以下特点:
设置:所有设置都以相应的变量名开头。 使用空格,可以添加一个或多个参数 – 这些参数以分号结尾。
1
|
worker_connections 768;
|
主要设置:一些设置,如事件变量,包含参数,然后可以用自己的参数表示设置。 这些子指令包含大括号 ({})。
1
2 3 4 |
events {
worker_connections 768; multi_accept on; } |
标签 (#):这些是已停用的指令,用标签注释掉。 删除此符号会再次激活设置。 所以在下面配置的情况下…
1
|
# multi_accept on;
|
同时接受多个客户端的选项已被停用。
制表位和多个空格:Nginx 将设置的制表符和重复设置的空格解释为一个空格。 在配置 Nginx 时,您可以利用这一方面来确保配置文件易于阅读和结构化。
5、有关各个模块的更多信息以及用于基于服务器软件设置 Web 或代理服务器的 Nginx 教程,可以在提供商的以下文档中找到。
是什么让 Nginx 如此受欢迎
Nginx 越来越受欢迎的原因有很多。 首先,Web 服务器软件与许多 Web 项目的当前要求相协调。 这是因为 Nginx 不仅在处理大量客户端请求时达到一流的结果; 它还以极其高效的方式运行,使该软件成为许多移动数据连接性能有限的完美解决方案。 作为网站运营商,Nginx 通过快速向所有用户(包括移动设备上的用户)交付内容来支持您。
更重要的是,来自俄罗斯开发团队的开源产品以软件提供的灵活性赢得了许多用户。 除了其经典的 HTTP Web 服务器选项外,Nginx 在反向代理任务(例如作为电子邮件代理服务器或负载平衡器)方面也提供了令人信服的性能。
尽管有所有这些优势,Nginx 并不是服务器解决方案的万能解决方案:通过密码保护区或内部重定向控制的共享主机被证明非常难以设置。 此类部分和重写只能在中央配置文件中创建并通过重新启动服务器来实现。 在此之后,任何发生的错误都会影响共享托管实例的所有参与者。 这是 Apache 仍然派上用场的地方,因为可以记录单独的 .htaccess 文件中的各个设置。