由于可怕的原因进入…我使用Nginx作为networking服务器,并希望它为内部用户(10.0.0.0/16说)和另一个页面上的外部用户在任何其他IP地址服务一页。
例如:
IP为10.0.0.34的“内部”PC转到company.com/page.html获取页面internal.html
IP地址为8.8.8.8的“外部”PC转到company.com/page.html获取页面external.html
利用Nginx 地理模块 。 它允许您根据客户端IP地址设置variables的值。 geo指令必须在http部分:
http { geo $client { default extra; 10.0.0.0/8 intra; }
您可以稍后在位置使用它来查找文件
location / { try_files $uri.$client $uri = 404; }
也就是说,Nginx会根据客户的IP将$client设置$client extra或intra 。 我们假设这是一个Intranet客户端。 如果客户要求page.html ,Nginx会search/your/root/page.html.intra文件。 如果没有这样的文件,它会search/your/root/page.html 。 如果找不到这些,Nginx会返回404“Not Found”响应。 更多关于“try_files”的文档
顺便说一句, index指令也支持variables。 例如
index index.$client.html index.html;