Nginx 之初步认知
nginx 具有体积小巧,功能强大的特性,整个程序都是基于 C 语言开发,先天具有高性能和良好的跨平台表现。
几年前建立个人站点的机缘下,接触了 HTTPD 继而用轻量级的 Nginx 取而代之,使用 Nginx 也有一段时间了,虽然谈不上精通,但是对于用来解决问题来说,积累了一些自己的经验。在 nginx 普及的当下,有必要把我在个人网站中对 nginx 的使用心得记录在此,以供有需要的新人少走弯路。
了解 nginx 功能最好的方式是查看配置文件: nginx.conf
,纵观配置文件可以看到处于最高层的配置分别是 user, events, http, mail ,分别对应 nginx 的不同功能模块。
nginx 支持 mail,http, tcp/udp 等业务的服务器类型。
全局基础配置
user: 配置 nginx 服务器运行时的用户权限,在 unix* 家族的系统中,对用户,用户组,都有严格的权限控制,nginx 的初期目标平台就是 linux ,因此也延续了用户权限的体系。
worker_processes: 配置工作进程的数量,一般可以根据逻辑cpu 内核数来定。
http 虚拟服务
一个 nginx 实例,允许存在多个服务,我们在 http { }
之内,加入 server {}
来完成服务添加,nginx 还提供了更便于维护的方式 include
指令,我们后面在详聊
server {
listen 8001;
server_name demo.com;
location / {
root /var/www/html;
}
}
可以根据你的需要,在一个nginx 实例中配置多个不同用途的服务。
参看官网手册: 待续
include 指令
include 指令的作用和 C 语言中的 include 类似,直接将被引用的文件内容原封不动的复制进来,简单直接。
基于以上简单直接的功能,include 指令在引入不同的配置文件是,需要考虑: 引入的内容,不能破坏 nginx.conf 原有的结构,所以 include 所引入的内容一般是形如:
server {
...
}
server {
...
}
的内容。
我们总结一下 include 的用法就是,include 会直接复制被引用文件的内容到引用文件中,所以在使用的过程中,我们需要根据 include 所处的位置,来决定被引用文件的内容。
你既可以在 http {} 中引入 server {},也可以直接在 nginx.conf 中引入 http {}
include 功能强大,怎么使用取决于你想怎样管理好 nginx.conf 配置文件了。
我个人推荐采取,模块化的思路,降低每一层配置文件的复杂度,通过文件夹结构来管理不同用途的配置文件,最后汇总到 nginx.conf 中。
HTTP 反向代理
nginx 的 HTTP 反向代理(后面简称反向代理)的作用是,为处于后方的 HTTP 服务,提供一个前方 HTTP 网关。
你可以在反向代理中,进行负载均衡,SSL,URL 重写等处理,所需要做的只是配置好一个前台 nginx 服务器。
server {
}
参考: