Nginx/zh-cn

nginx是一个稳定、轻量、高性能的web服务器以及反向代理服务器. 它和Apache、lighttpd都是很好的常用的web服务器.

安装
在安装 包之前，首先请仔细查看Nginx包的USE标记.

扩展USE标记
Nginx使用模块来增加它的功能. 为了简化其模块的维护工作，nginx ebuild使用扩展USE ( USE_EXPAND )标记来指明应该安装哪些模块.


 * HTTP相关的模块可以通过设置 NGINX_MODULES_HTTP 变量使其生效
 * 邮件相关的模块可以通过设置 NGINX_MODULES_MAIL 变量使其生效
 * 第三方模块需要设置 NGINX_ADD_MODULES 变量

这些变量需要在 中进行设置. 关于它们的描述可以参看 和.

例如，为了使  模块生效：

The above will overwrite the default value of NGINX_MODULES_HTTP and set it to. To enable the  module without overwriting the default NGINX_MODULES_HTTP value, the following USE flag notation can be specified in :

Emerge
设置完毕USE标记后，安装：

验证安装
The default nginx configuration defines a virtual server with the root directory set to. However due to, the nginx ebuild will only create the directory and without an index file. To have a working default configuration, create the directory and simple index file:

nginx包安装了一个初始化服务的脚本，允许管理员开始、停止或者重新运行该服务. 运行下列命令来开启nginx服务：

若要验证nginx已经正确安装，需打开浏览器并输入http://localhost地址，或使用命令行式的web工具，如：

配置
nginx使用文件来管理配置.

单站点访问
下面展示了一个不使用动态特性（如PHP）来进行单站点访问的例子.

多站点访问
可以使用 指令将配置文件分割成多个：

PHP支持
在nginx配置文件中加入下列配置来启用PHP支持. 在这个例子中，nginx通过UNIX套接字与PHP进程通信.

为了支持上述配置，PHP需要在编译时开启 USE标记，以加入FastCGI进程管理器（FastCGI Process Manager）支持（即）.

开启 USE标记后，重新编译PHP：

检查 配置文件并添加下列配置：

在文件 中设置php-fpm的时区. 将下面例子中的 替换为正确的时区信息：

启动 守护进程：

将 加入default runlevel：

重新加载 配置文件：

IP地址访问列表
下面的例子说明了如何使一个特定的URL地址（本例中为“”）只能被：


 * 当前主机（比如192.0.2.1 127.0.0.1）
 * 以及IP段（198.51.100.0/24）

基础的授权方式
nginx允许通过验证用户名和密码来限制资源的访问：

The file can be generated using:

TLS支持
十分建议仅支持TLS，并禁用一切已知的不安全密码.

ebuild在 中提供了自签名证书.

正向加密
diffie-hellman证书可以通过 来创建：

第三方模块
下载第三方模块后，将其移动至. 手动编译选中的Nginx模块，并将下列配置加入 ：

重新编译 nginx 以添加第三方模块：

OpenRC
启动nginx：

停止nginx：

将nginx添加至default runlevel：

重启nginx服务：

故障排除
当遇到问题时，下列命令可以帮助你定位故障.

验证配置
验证正在运行的nginx配置没有故障：

在运行时添加  选项，它会自动验证配置文件的正确性，而并不会真正启动守护进程.

验证进程正在运行
验证进程正在运行：

验证绑定的地址和端口
验证nginx服务正在监听正确的TCP端口（如HTTP使用的80端口，或者HTTPS使用的443端口）：

另请参阅

 * Apache - 最常用的HTTP服务器.
 * Lighttpd - 一个快速、轻量的web服务器.

外部资源

 * https://nginx.org/en/docs/beginners_guide.html - A beginner's guide. Helpful for those who do not know much about.
 * https://nginx.com/resources/admin-guide/ - The administration guide. Helpful for web administrators who have been working in the field.
 * http://wiki.nginx.org/Main - The nginx wiki.
 * https://github.com/h5bp/server-configs-nginx - H5BP nginx config.