nginx 处理 request 的过程 (how nginx processes a request)
访问量: 2814
refer to http://nginx.org/en/docs/http/request_processing.html#simple_php_site_configuration
Name based virtual servers
会根据request header中的 server name来配对,例如, 给定配置文件:
server { listen 80; server_name example.org www.example.org; ... } server { listen 80; server_name example.net www.example.net; ... } server { listen 80; server_name example.com www.example.com; ... }
如果我们请求 example.come/lala , 那么,就会被匹配到第三个配置项目上。
如果啥也没指定,直接 localhost:80, 那么,就会被匹配到 default site上(通常是第一个)。
这个是配置default site的例子:
server { listen 80 default_server; server_name example.net www.example.net; ... }
如果希望阻止用户访问 localhost:80呢? 按照下面的方式配置: (就是配置一个 server_name = ''的server)
server { listen 80; server_name ""; return 444; }
再来个高级些,或者说 ”奇怪些“的功能:如何监听从 192.168.1.2 请求过来的,访问80端口的request呢?
需要按照下面的方式配置:
server { listen 192.168.1.1:80; # 监听 192.168.1.1 过来的,访问80端口的request server_name example.org www.example.org; ... } server { listen 192.168.1.1:80; server_name example.net www.example.net; ... } server { listen 192.168.1.2:80; server_name example.com www.example.com; ... }