nginx1.14.0版本server、location、rewrite配置

server配置demo

在192.168.10.140(centos7)上修改:

/home/program/nginx/conf/nginx.conf 添加一个server

    server {
        listen       80;           //监听一个80端口的应用
        server_name  www.joyce.com;  //应用的虚拟域名或IP(比如localhost)都可
        access_log logs/my_access.log
     error_log logs/my_error.log
charset utf-8;
error_page 404 = @fallback404 //语法就是@开头

location /@fallback404 {
        proxy_pass http://www.baidu.com; //当404错误发生时,服务降级处理
     }
location / { //应用的根路径访问 root html/domain; //应用的静态资源文件所在路径 index index.html; // 如果访问根路径/,则访问页面index.html
        deny all; //拒绝任何请求
allow all; //允许所有请求 } }

cd /home/program/nginx/html

mkdir domain        //应用的静态资源文件所在路径

cd domain 

vi index.html         //创建一个访问页面index.html

<h1>I'm Joyce! </h1>

cd /home/program/nginx/sbin

./nginx -s reload   重新启动

在windows本机上修改:

修改host文件,路径: c:windowssystem32driversetc

添加虚拟域名:  192.168.10.140  www.joyce.com

浏览器访问: http://192.168.10.140    结果显示html页面内容:I'm Joyce!

location精准路径和一般路径的区别

nginx.conf里面的location配置, 精准匹配的优先级高于一般匹配 。

精准路径配置:

location = /jingzhun {                  //精准路径必须跟上root的文件夹路径/domain才可访问index.html
            root   html/domain;       //应用的静态资源文件所在路径   
            index  index.html;         // 如果访问根路径/,则访问页面index.html
}
一般路径配置:
location /yiban {                  //一般路径无需跟上root的文件夹路径/domain即可访问index.html
            root   html/domain;       //应用的静态资源文件所在路径   
            index  index.html;         // 如果访问根路径/,则访问页面index.html
}

uri前后都加上/或都不加/,精准匹配才优先于一般匹配。

location的rewrite配置

location /abc {
   rewrite '/images/[a-z]3/(.*).(png|jpg)' /jack?file=$2.$3;   #路径跳转。用索引第二位参数和索引第三位参数,索引从0开始。跳转到下一个url
}

location /abc2 {        #跳转到下一个url
   root html;
   try_files $uri /image404.html;  
}

location /images404.html {
    return 404 "image not found exception";    #直接输出不存在
}
原文地址:https://www.cnblogs.com/zhuwenjoyce/p/10544598.html