Nginx server配置段location,alias,root

set number

[root@Nginx nginx]# cp nginx.conf{,.bak}

 1,虚拟主机配置!
80行
[root@Nginx sbin]# vim /etc/nginx/nginx.conf 
 80         server {
 81                 listen 8080;
 82                 server_name www.linuxea.com;
 83                 root "/vhost/linuxea/";
 84     }    

[root@Nginx nginx]# mkdir /vhost/linuxea/ -p
[root@Nginx nginx]# cd /vhost/linuxea/
[root@Nginx linuxea]# echo www.linuxea.com > index.html
[root@Nginx sbin]# /usr/local/nginx/sbin/nginx -s reload


2,listen
指定监听的地址和端口;
 listen address[:prot];
 listen port;

3,server_name NAME
 server_name只能用于server中
 server_name 后可跟多个主机,名称还可以使用正规表达式(~)或通配符

4,root path;
 设置资源路径映射:用于指明请求的url所对应的资源所在的文件系统上的起始路径

5,location [ = | ~* |^~ ] url {...}
 location @name {...}
 功能:允许根据用户请求的url来匹配定义的各location:匹配到时,此请求将被相应的location配置块中的配置所处理,例如做访问控制等功能;

server {
     listen 8080;
     server_name www.linuxea.com;
     location / {
        root "/vhost/linuxea/";
       }
 location /images/ {
    root "/vhost/images"
   }

 location ~* \.php$ {
    fcgipass 
  }

  }    

 =:精确匹配检查
~:正则表达式模式匹配检查,区分字符大小写
~*:正则表达式模块匹配检查,不区分字符大小写
^~:uri的前半部分匹配,不检查正则表达式


匹配优先级:精确匹配(=), ^~,~,~* 不带任何符号的location;

如:

 80         server {
  81                 listen 8080;
  82                 server_name www.linuxea.com;
  83                 location / {
  84                         root "/vhost/linuxea/";
  85                 }
  86                 location /images/ {
  87                         root "/vhost/images";
  88                 }
  89                 location ~* \. (txt|text)$ {
  90                         root "/vhost/txt";
  91                 }
  92                 }
 [root@Nginx sbin]# mkdir -pv /vhost/{images,txt}
 mkdir: created directory `/vhost/images'
 mkdir: created directory `/vhost/txt'
 [root@Nginx sbin]# echo "<h2>/vhost/txt/a.txt<h2>" > /vhost/txt/a.txt
 [root@Nginx sbin]# /usr/local/nginx/sbin/nginx -s reload


当我们访问a.txt是匹配的回事 location ~* \. (txt|text)$ 这段!

 

6,alias path;
用户location配置段,实现路径别名定义!
注意:root已经可以定义,root表示指明路径为对于的location “/" URL;alias表示路径映射,即location指令后定义的url是相对于alias所指明的路径而言

如: location /images/ {
        root "/vhoast/web1";
}

访问httpd://www.linuxea.com/images/1.jpg ,相当于访问/vhost/web1/images/1.jpg

location /images/ {
    alias "/www/pictures";

}

访问httpd://www.linuxea.com/images/1.jpg ,相当于访问/www/pictures/1.jpg

如果使用的是alias是相对于location /images/右侧/路径而言的
如果使用的是root是相对于location /images/左侧/路径而言的



 

2 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2015-11-15分类: Nginx

标签: nginx

发表评论