出于可怕的原因......我使用 Nginx 作为网络服务器,并希望它为内部用户(比如在 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
Ale*_*rov 13
利用 Nginx地理模块。它允许您根据客户端 IP 地址设置变量的值。geo
指令必须在http
部分:
http {
geo $client {
default extra;
10.0.0.0/8 intra;
}
Run Code Online (Sandbox Code Playgroud)
您可以稍后在位置中使用它来查找文件
location / {
try_files $uri.$client $uri = 404;
}
Run Code Online (Sandbox Code Playgroud)
这意味着,Nginx 将设置$client
为extra
或intra
基于客户端的 IP。让我们假设它是一个 Intranet 客户端。如果客户端要求page.html
,Nginx 将搜索文件/your/root/page.html.intra
。如果没有这样的文件,它将搜索/your/root/page.html
. 如果两者都找不到,Nginx 将返回 404“Not Found”响应。文档中有关“try_files”的更多信息
顺便说一下,index
指令也支持变量。例如
index index.$client.html index.html;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7962 次 |
最近记录: |