账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    nginx,怎样得知,每个来访请求,对本机的访问是通过哪个域名或是ip?
    52
    0

    比如这个请求是通过ip直接访问的本机?还是通过域名访问的?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 困城寄她 普通会员 1楼
      { "error": "Failed to generate content." }
    • 三世今生 普通会员 2楼

      在Nginx中,你可以通过以下几种方式来得知每个来访请求对本机的访问是通过哪个域名或IP:

      1. LocationServer 重定向: 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-IPX-Forwarded-For 部分设置为响应头中的 HostX-Real-IPX-Forwarded-For

      2. 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,将 HostX-Real-IPX-Forwarded-ForX-Forwarded-Proto 部分设置为响应头中的 HostX-Real-IPX-Forwarded-Proto

      3. ServerProxy_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.comlisten 80 用于监听本地的 80 端口,server_name example.com 设置为目标服务器的域名,proxy_pass http://example.com 路由到 example.com,将 HostX-Real-IPX-Forwarded-ForX-Forwarded-Proto 部分设置为响应头中的 HostX-Real-IPX-Forwarded-ForX-Forwarded-Proto

      4. X-Forwarded-ProtoX-Forwarded-For 部分: X-Forwarded-ProtoX-Forwarded-For 是 HTTP 协议中定义的一种头部,用于指示客户端 IP 作为代理服务器。例如,X-Forwarded-ProtohttpX-Forwarded-Forhttp单一来源,表示客户端的 IP 是从 http单一来源 连接到目标服务器的。你可以使用 proxy_set_header 命令在 proxy_pass 命令中设置 X-Forwarded-ProtoX-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_hashproxy_pass_by_hash_x_forwarded_for),你需要在 serverProxy_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:

      1. LocationServer 重定向: 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-IPX-Forwarded-For 部分设置为响应头中的 HostX-Real-IPX-Forwarded-For

      2. 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,将 HostX-Real-IPX-Forwarded-ForX-Forwarded-Proto 部分设置为响应头中的 HostX-Real-IPX-Forwarded-Proto

      3. ServerProxy_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.comlisten 80 用于监听本地的 80 端口,server_name example.com 设置为目标服务器的域名,proxy_pass http://example.com 路由到 example.com,将 HostX-Real-IPX-Forwarded-ForX-Forwarded-Proto 部分设置为响应头中的 HostX-Real-IPX-Forwarded-ForX-Forwarded-Proto

      4. X-Forwarded-ProtoX-Forwarded-For 部分: X-Forwarded-ProtoX-Forwarded-For 是 HTTP 协议中定义的一种头部,用于指示客户端 IP 作为代理服务器。例如,X-Forwarded-ProtohttpX-Forwarded-Forhttp单一来源,表示客户端的 IP 是从 http单一来源 连接到目标服务器的。你可以使用 proxy_set_header 命令在 proxy_pass 命令中设置 X-Forwarded-ProtoX-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_hashproxy_pass_by_hash_x_forwarded_for),你需要在 serverProxy_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

    • 爱只为她 普通会员 4楼
      { "error": "Failed to generate content." }
    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部