Nginx如何将路径转换成域名


Nginx如何将路径转换成域名
https://www.linuxcapable.com/how-to-configure-nginx-location-regex-blocks/

# 这个优先级最高 = 完全匹配
        location = /html/index.html {
           root /mwdata/www/outside/;
           expires max;
        }
        # 2023-4-3 begin
        location ~ ^/outsite/([0-9a-z.]+)/(.*) {
           root /mwdata/www/outside/$1;
           proxy_set_header Host $1;
           proxy_pass http://$1/$2;
        }

        # 2023-4-3 ^~ 优先级高于 ~
        location ^~ /outsite {
           access_log  /mwdata/log/nginx/outsite.access.log  main;
           #root /mwdata/www/outsite/$1;
           root /mwdata/www;
           expires max;
        }
        location ~ /outsite/([0-9a-z.]+)/(.*) {
           access_log  /mwdata/log/nginx/outsite.access.log  main;
           proxy_set_header Host $1;
           proxy_pass http://$1/$2;
        }

如果使用域名作为反向代理的地址的话会在Nginx0.6.18以后的版本中都会提示“ no resolver defined to resolve ”的类似错误,而在proxy_pass 中直接设置地址却不会。

原因是Nginx0.6.18以后的版本中启用了一个resolver指令,在使用变量来构造某个server地址的时候一定要用resolver指令来制定DNS服务器的地址,所以解决这个问题的方法很简单:

在nginx的配置文件中的http{}部分添加一行resolver 8.8.8.8;即可
特别注意:8.8.8.8是针对外网的dns配置,我们这边用的是政务网所以配置了114.114.114.114
阅读量: 414
发布于:
修改于: