高性能Web服务器Nginx使用指南(3)

conf.d/和default.d/扩展配置文件目录
Nginx中引入扩展配置文件的目录是为了降低主配置文件nginx.conf的复杂度,Nginx的http块是由多个server块组成,每个server也是有多个location块组成的,这么多的server和location当然都可以放在一个主配置文件中,但还是server过多的情况下,会使得主配置文件变得十分庞大,而且也不便于管理与修改。因此引入了扩展配置文件目录。

conf.d/目录下存放server块的配置文件,default.d/目录下存放location块的配置文件,引用的时候使用include指令将相对应的server块配置文件和location配置文件加入各自的block块中即可。

http {
    ...<http全局指令>...
    include /etc/nginx/conf.d/*.conf;
}
或者
server {
    ...<server全局指令>...
    include /etc/nginx/default.d/*.conf;
}

fastcgi_params/fastcgi.conf

Nginx在fastcgi解析的时候,需要调用这两个文件中的服务器变量,内置的服务器变量如下,

高性能Web服务器Nginx使用指南

这个文件的区别就是.conf比params多了一行fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

高性能Web服务器Nginx使用指南

uwsgi_params

和fastcgi_params一样,这里是调用关于uwsgi协议的一些服务器变量。

scgi_params

这里是调用关于scgi协议的一些服务器变量。

mime.types

web资源类型配置文件,定义web资源的类型,即文件扩展名和资源类型的映射表,nginx就是根据这个映射表设置http请求响应头的Content-Type值。

高性能Web服务器Nginx使用指南

mime.types在http块的全局配置中被引用,下面的指令的意思是根据mime.types定义web资源类型,如果在映射表中找不到对应关系,则使用default_type定义的默认资源类型。

 

koi-win/koi-utf/win-utf

这三个文件都是与编码转换映射相关的文件,用于在输出内容到客户端时,将一种编码转换到另一种编码。

koi-win: charset_map  koi8-r < -- > windows-1251

koi-utf: charset_map  koi8-r < -- > utf-8

win-utf: charset_map  windows-1251 < -- > utf-8

3.虚拟主机

对Nginx而言,一个server块就是一个虚拟主机,我这里将每个server块的配置单独作为一个文件放入conf.d/目录下。然后在主配置文件中include命令包含进来即可。

关于虚拟主机的指令如下,

server {...}        虚拟主机开始的关键字

listen address[:port] [default_server]

                        虚拟主机监听的IP和端口

        default_server定义该server为默认,如果所有server段都没有使用该参数,则第一个server为默认

        该参数通常在地址列没有输入server_name,而是输入IP地址的时候,Nginx会定位在default_server的虚拟主机。 

        例: listen 192.168.124.100:80 default_server

server_name    指定虚拟主机的域名,可以定义多个域名,之间用空格隔开,可以使用通配符和正则表达式

        server_name的作用:Nginx收到一个http请求的时候,会取出首部的server字段,然后和所有server_name字段进行比较,匹配则定位到对应的server块;

        server可以是多个,相对应的server_name也会有多个,多个server_name之间的优先顺序是:

            精确匹配               

            左侧通配符匹配    *.linux.com

                这个左侧通配符匹配实际应用场景很广,、bbs.linux.com、blog.linux.com等都可以通过一个左侧通配符来完成

            右侧通配符匹配    *

            正则表达式匹配    ^.*\.linux\.com$

root                   定义虚拟主机的网页根目录,可以是绝对路径,也可是相对路径

index                 定义虚拟主机默认的首页文件

charset              定义网页的默认编码格式,既可以用于http全局,也可以用于server全局

access_log        同样既可以用于http全局,也可以用于server全局

location {...}       地址匹配开始的关键字,location块对URL地址匹配进行设置,支持正则表达式匹配

        location和URL进行匹配,匹配成功则进行其中的处理。控制服务端的访问路径

            =    精确匹配

            ~    正则表达式匹配,区分大小写

            ~*   正则表达式匹配,不区分大小写

            ^~  URL前半部分匹配,忽略大小写

            /      通用匹配,因为所有的匹配都是以/为开始的

    他们的优先级:

            = -> ^~ -> ~或者~* -> /

例如:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/609fc2f5a92e09977537b71632533576.html