Nginx/zh-cn

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

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

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


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

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

例如，为了使  模块生效：

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

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

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

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

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

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

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

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

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

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

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

启动 php-fpm 守护进程：

将 php-fpm 加入default runlevel：

重新加载 nginx 配置文件：

IP地址访问列表
The next example shows how to allow access to a particular URL (in this case /nginx_status) only to
 * certain hosts (e.g. 192.0.2.1 127.0.0.1)
 * and IP networks (e.g. 198.51.100.0/24)

Basic authentication
nginx allows limiting access to resources by validating the user name and password:

The file can be generated using:

TLS support
It is warmly suggested to support only TLS and disable known insecure ciphers.

The ebuild provides stock self signed certificates in

Forward secrecy
The diffie-hellman certificate can be created using openssl:

Third party modules
Download third party module source and move it to. Manually compile the selected Nginx module, then add the following line to :

Rebuild nginx with the third party module enabled:

OpenRC
Start nginx:

Stop nginx:

Add nginx to the default runlevel:

Restart the nginx service:

Troubleshooting
In case of problems, the following commands can help troubleshoot the situation.

Validate configuration
Verify that the running nginx configuration has no errors:

By running nginx with the  option, it will validate the configuration file without actually starting the nginx daemon.

Verify processes are running
Check if nginx processes are running:

Verify bound addresses and ports
Verify nginx daemon is listening on the right TCP port (such as 80 for HTTP or 443 for HTTPS):

External resources

 * nginx Wiki
 * H5BP nginx config