- 52
- 0
比如这个请求是通过ip直接访问的本机?还是通过域名访问的?
- 共 0 条
- 全部回答
-
三世今生 普通会员 2楼
在Nginx中,你可以通过以下几种方式来得知每个来访请求对本机的访问是通过哪个域名或IP:
-
Location和Server重定向:Location标签通常用于指示 Nginx 将请求路由到哪个位置。在Location标签中,你可以指定一个 URL(通常是.html、.css、.js等)和一个通配符(通常是^)来指定请求来自哪个 URL。例如:nginx server { location /my-page { proxy_pass http://example.com/my-page; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }在上面的代码中,location /my-page匹配http://example.com/my-page,并将请求转发到example.com,同时,将主机名、客户端 IP 和X-Real-IP、X-Forwarded-For部分设置为响应头中的Host、X-Real-IP和X-Forwarded-For。 -
Proxy_pass命令:Proxy_pass命令用于设置代理服务器,用于转发请求到其他服务器。你可以将目标服务器的 IP 或域名作为参数传递给Proxy_pass命令,然后在转发的请求中包含目标服务器的 IP 或域名,以明确请求来源。例如:nginx server { proxy_pass http://example.com; 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_set_header X-Forwarded-Proto $scheme; }在上面的代码中,proxy_pass http://example.com路由到example.com,将Host、X-Real-IP、X-Forwarded-For和X-Forwarded-Proto部分设置为响应头中的Host、X-Real-IP和X-Forwarded-Proto。 -
Server和Proxy_pass重定向:Server标签用于指示 Nginx 将请求路由到哪个位置,而Proxy_pass标签用于设置代理服务器,用于转发请求到目标服务器。例如:nginx server { server { listen 80; server_name example.com; proxy_pass http://example.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }在上面的代码中,server标签指示 Nginx 将请求路由到example.com,listen 80用于监听本地的 80 端口,server_name example.com设置为目标服务器的域名,proxy_pass http://example.com路由到example.com,将Host、X-Real-IP、X-Forwarded-For和X-Forwarded-Proto部分设置为响应头中的Host、X-Real-IP、X-Forwarded-For和X-Forwarded-Proto。 -
X-Forwarded-Proto和X-Forwarded-For部分:X-Forwarded-Proto和X-Forwarded-For是 HTTP 协议中定义的一种头部,用于指示客户端 IP 作为代理服务器。例如,X-Forwarded-Proto是http,X-Forwarded-For是http单一来源,表示客户端的 IP 是从http单一来源连接到目标服务器的。你可以使用proxy_set_header命令在proxy_pass命令中设置X-Forwarded-Proto和X-Forwarded-For部分,以明确客户端 IP 作为代理服务器。nginx server { server { listen 80; server_name example.com; proxy_pass http://example.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For "192.168.1.100"; } }在上面的代码中,X-Forwarded-Proto设置为http单一来源,X-Forwarded-For设置为192.168.1.100,表示客户端的 IP 是从http单一来源连接到目标服务器的。
注意:在实际应用中,你需要根据需要和目标服务器的配置来确定如何设置这些头部,例如,如果你的目标服务器使用了 Nginx 的其他扩展(如
proxy_pass_by_hash或proxy_pass_by_hash_x_forwarded_for),你需要在server和Proxy_pass重定向中使用相应的扩展名。例如,如果你的目标服务器使用了proxy_pass_by_hash,你可以在server标签中设置proxy_pass命令为proxy_pass_by_hash example.com,在proxy_pass_by_hash_x_forwarded_for重定向中设置proxy_pass命令为proxy_pass_by_hash example.com:80。 -
-
欲望本就很美 普通会员 3楼
在Nginx中,你可以通过以下几种方式来得知每个来访请求对本机的访问是通过哪个域名或IP:
-
Location和Server重定向:Location标签通常用于指示 Nginx 将请求路由到哪个位置。在Location标签中,你可以指定一个 URL(通常是.html、.css、.js等)和一个通配符(通常是^)来指定请求来自哪个 URL。例如:nginx server { location /my-page { proxy_pass http://example.com/my-page; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }在上面的代码中,location /my-page匹配http://example.com/my-page,并将请求转发到example.com,同时,将主机名、客户端 IP 和X-Real-IP、X-Forwarded-For部分设置为响应头中的Host、X-Real-IP和X-Forwarded-For。 -
Proxy_pass命令:Proxy_pass命令用于设置代理服务器,用于转发请求到其他服务器。你可以将目标服务器的 IP 或域名作为参数传递给Proxy_pass命令,然后在转发的请求中包含目标服务器的 IP 或域名,以明确请求来源。例如:nginx server { proxy_pass http://example.com; 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_set_header X-Forwarded-Proto $scheme; }在上面的代码中,proxy_pass http://example.com路由到example.com,将Host、X-Real-IP、X-Forwarded-For和X-Forwarded-Proto部分设置为响应头中的Host、X-Real-IP和X-Forwarded-Proto。 -
Server和Proxy_pass重定向:Server标签用于指示 Nginx 将请求路由到哪个位置,而Proxy_pass标签用于设置代理服务器,用于转发请求到目标服务器。例如:nginx server { server { listen 80; server_name example.com; proxy_pass http://example.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }在上面的代码中,server标签指示 Nginx 将请求路由到example.com,listen 80用于监听本地的 80 端口,server_name example.com设置为目标服务器的域名,proxy_pass http://example.com路由到example.com,将Host、X-Real-IP、X-Forwarded-For和X-Forwarded-Proto部分设置为响应头中的Host、X-Real-IP、X-Forwarded-For和X-Forwarded-Proto。 -
X-Forwarded-Proto和X-Forwarded-For部分:X-Forwarded-Proto和X-Forwarded-For是 HTTP 协议中定义的一种头部,用于指示客户端 IP 作为代理服务器。例如,X-Forwarded-Proto是http,X-Forwarded-For是http单一来源,表示客户端的 IP 是从http单一来源连接到目标服务器的。你可以使用proxy_set_header命令在proxy_pass命令中设置X-Forwarded-Proto和X-Forwarded-For部分,以明确客户端 IP 作为代理服务器。nginx server { server { listen 80; server_name example.com; proxy_pass http://example.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For "192.168.1.100"; } }在上面的代码中,X-Forwarded-Proto设置为http单一来源,X-Forwarded-For设置为192.168.1.100,表示客户端的 IP 是从http单一来源连接到目标服务器的。
注意:在实际应用中,你需要根据需要和目标服务器的配置来确定如何设置这些头部,例如,如果你的目标服务器使用了 Nginx 的其他扩展(如
proxy_pass_by_hash或proxy_pass_by_hash_x_forwarded_for),你需要在server和Proxy_pass重定向中使用相应的扩展名。例如,如果你的目标服务器使用了proxy_pass_by_hash,你可以在server标签中设置proxy_pass命令为proxy_pass_by_hash example.com,在proxy_pass_by_hash_x_forwarded_for重定向中设置proxy_pass命令为proxy_pass_by_hash example.com:80。 -
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

