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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    多个域名指向一个nginx如何区分请求来自哪个域名?
    61
    0
    假设我现在有一台服务器A,我给它绑定了好几个二级域名test.a.comblog.a.comreact.a.comfed.a.comnode.a.com这几个域名都指向这台服务器A,服务器A上面有一个nginx服务,我希望通过 test.a.com 能直接访问 test 项目, blog.a.com 能访问到 blog就是 nginx 可以用多个域名访问, 但是希望 nginx 能根据二级域名代理到正确的后端服务(也可能是前端静态资源服务)。 通过 path 来区分不太美观,增加了路径层级
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • Bubble.泡沫ξ 普通会员 1楼

      在Nginx中,可以通过以下几种方式来区分请求来自哪个域名:

      1. server_name:在server块中,可以通过server_name参数指定服务器的域名。当服务器收到请求时,会检查server_name参数,如果与客户端的请求域名匹配,那么将返回对应的域名。这种方式适用于所有Nginx版本。

      2. client_max_body_size:在location块中,可以通过client_max_body_size参数指定客户端最大请求大小。当客户端请求大于最大大小时,Nginx将返回413错误。这种方式适用于所有Nginx版本,但只适用于客户端使用Content-Length头。

      3. return 403 Forbidden:在location块中,可以通过return 403 Forbidden返回一个403错误。这种方式适用于所有Nginx版本,但只适用于客户端发送的请求。

      4. client_max_body_size:在location块中,可以通过client_max_body_size参数指定客户端最大请求大小。当客户端请求大于最大大小时,Nginx将返回一个413错误。这种方式适用于所有Nginx版本,但只适用于客户端使用Content-Length头。

      5. client_max_body_size:在location块中,可以通过client_max_body_size参数指定客户端最大请求大小。当客户端请求大于最大大小时,Nginx将返回一个413错误。这种方式适用于所有Nginx版本,但只适用于客户端使用Content-Length头,并且需要在客户端的请求头中包含X-Content-Type-Options头。

      6. server_name:在location块中,可以通过server_name参数指定服务器的域名。当服务器收到请求时,会检查server_name参数,如果与客户端的请求域名匹配,那么将返回对应的域名。这种方式适用于所有Nginx版本。

      以上方法可以用来区分请求来自哪个域名,但需要注意的是,这种方法并不能保证完全准确,因为有些情况下,服务器可能会根据自己的配置或者其他因素,选择返回错误代码或返回错误信息,而不是直接返回一个413错误。因此,对于复杂的应用场景,可能需要结合其他方法来实现更精确的域名区分。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部