美文网首页
Nginx笔记

Nginx笔记

作者: 郭彦超 | 来源:发表于2020-07-02 10:56 被阅读0次

    重定向

    反向代理:

    try_files $uri @pro;
    location @pro {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://www.jianshu.com/u/8f36a5e63d18;
    }
    
    

    说明:
    1、访问www.example.com/123.html(文件存在)时,此时看到的是123.html内容,URL地址不变
    2、访问www.example.com/post-3647.html(文件不存在)时,此时看到的是江边城外的博客的内容,URL地址不变

    
    location /whsir/ {
        try_files $uri @ab;
    }
    location @ab {
        rewrite ^/(.*)$ https://www.jianshu.com/u/8f36a5e63d18;
    }
    
    

    说明:
    1、访问www.example.com/whsir/123.html(文件存在)时,此时看到的是123.html内容,URL地址不变
    2、访问www.example.com/whsir/21.html(文件不存在)时,此时跳转到江边城外的博客,URL地址改变
    总结:当文件不存在时,会去查找@ab值,此时在location中定义@ab值跳转到江边城外的博客

    location /whsir/ {
        try_files $uri /whsir/default.gif;
    }
    
    

    说明:
    1、访问www.example.com/whsir/123/321(文件不存在)时,此时看到的是default.gif图片,URL地址不变
    2、访问www.example.com/whsir/123.png(文件存在)时,此时看到的是123.png图片,URL地址不变
    总结:当images目录下文件不存在时,默认返回default.gif

    alias

    location /bb {
       alias d:/work/nginx-1.10.2/html/aa/;
    }
    
    

    说明:
    1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的;
    2)root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;
    3)使用alias标签的目录块中不能使用rewrite的break(具体原因不明);另外,alias指定的目录后面必须要加上"/"符号!!
    4)alias虚拟目录配置中,location匹配的path目录如果后面不带"/",那么访问的url地址中这个path目录后面加不加"/"不影响访问,访问时它会自动加上"/";
    但是如果location匹配的path目录后面加上"/",那么访问的url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败!
    5)root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问。

    proxy_pass

    假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问
    
    第一种:
    location /proxy/ {
    proxy_pass http://127.0.0.1/;
    }
    代理到URL:[http://127.0.0.1/test.html](http://127.0.0.1/test.html)
    
    第二种(相对于第一种,最后少一个 / )
    location /proxy/ {
    proxy_pass http://127.0.0.1;
    }
    代理到URL:[http://127.0.0.1/proxy/test.html](http://127.0.0.1/proxy/test.html)
    
    

    说明:
    在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。

    相关文章

      网友评论

          本文标题:Nginx笔记

          本文链接:https://www.haomeiwen.com/subject/ymylqktx.html