Nginx配置详解
twocode

server{}:

一个大型的网站通常会有很多下属的站点,比如主站www.pekingpiao.com,二级域名:m.pekingpiao.com、blog.pekingpiao.com,有各自的服务器提供相应的服务在 nginx 中我们可以通过一个叫虚拟主机的概念来将这些不同的服务配置隔离,这就是上面配置中的 server{} 的含义这样的话不同的 url 请求就会对应到 nginx 相应的设置,转发到不同的后端服务器上。这里的servername 是和客户端 http 请求中的 host (pekingpiao.com)行进行匹配的。

root :

指将本地的一个文件夹作为所有 url 请求的根路径。比如用户请求了一个 localhost/test,那么 nginx 就会去寻找/usr/share/nginx/html 文件夹下的 test 文件返回。

index :

        就是默认的访问页面了,当我们访问 localhost 时,他会自动按顺序寻找 root 文件路径下的index.php、index.html 和 index.htm 将第一个找到的结果返回。

default_server:

        是指如果有其他 http 请求的 host 在 nginx 中不存在设置的话那么就用这个 server 的配置来处理。比如我们去访问 127.0.0.1,那么也会落到这个 server 来处理

server_name:

        本例中 server_name 为 localhost,这就是为什么我们可以在浏览器通过 localhost 访问到页面的配置。下面两个 listen 分别对应了 ipv4 和 ipv6 下的监听端口如果设为 80(默认就是80),那么我们就只能通过 localhost[:80]来访问到默认页面了

location:

        每个 url 请求都会对应的一个服务,nginx 进行处理转发或者是本地的一个文件路径,或者是其他服务器的一个服务路径。而这个路径的匹配是通过 location 来进行的。我们可以将 server 当做对应一个域名进行的配置,而 location 是在一个域名下对更精细的路径进行配置。

在这里 location 匹配 / 开始的所有请求,即 localhost 下的 /xxx 或者/yyy 都要走下面的配置,除了这种简单粗暴的匹配,nginx 也支持正则和完全相等及其他的精细匹配方式。

tryfiles:

nginx 会按照接下来的顺序去访问文件,将第一个匹配的返回。比如你去请求 localhost/test,他会去寻找/test 文件,找不到再去找 /test/ 再找不到就返回一个 404。此外我们还可以在 location 的配置里用 proxypass 实现反向代理和负载均衡(查看下篇博文),这个是最简单的配置。

网友评论已关闭