首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止不通过预定域名访问网站

问防止不通过预定域名访问网站
EN

Server Fault用户
提问于 2016-09-22 16:14:53
回答 2查看 117关注 0票数 0

我在Debian上有一个具有多个域的nginx服务器。它们都位于html文件夹中。然后,A记录指向我的服务器,您可以通过转到/var/www/html/mywebsite.biz访问https://mywebsite.biz中的文件。我还使用加密为他们分配了TLS证书。

看起来是这样的:

代码语言:javascript
复制
└── html
    ├── mywebsite.biz
    ├── anotherwebsite.net
    ├── example-three.com
    └── somewebsite.ca

但是,您可以通过我的ip地址访问html文件夹,而不需要TLS,如下所示:

http://216.58.216.78/mywebsite.biz

但我也有希望这种情况发生的案例。如果我想在我将域指向我的服务器之前设置一个测试站点。为此,我使用noip.com为它分配了一个友好的名称,如下所示:

http://myservername.ddns.net/somewebsite.ca (只是一个测试站点)

--通过ip地址/友好名称拒绝某些站点访问的最佳方法是什么?

拒绝/重定向这些:

http://myservername.ddns.net/mywebsite.biz

http://216.58.216.78/mywebsite.biz

允许这样做:

http://myservername.ddns.net/somewebsite.ca

我的猜测是将它们重定向到那里,但是我对nginx有点陌生,我想确保这是最好的方法。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2016-09-22 21:57:17

使用此站点配置。它基本上阻止Nginx通过IP响应请求。"default_server“指令是关键部分。

代码语言:javascript
复制
# This just prevents Nginx picking a random default server if it doesn't know which server block to send a request to
server {
  listen      80 default_server;
  server_name _;
  return      444; # This means "go away", effectively

  access_log off; log_not_found off; # Optional
}
票数 1
EN

Server Fault用户

发布于 2016-09-22 16:36:18

虽然可以使用一组regex匹配请求的URL来做您想做的事情,但是我将避免通过IP访问父目录(html),因为:-

  • 将来很容易搞砸(安全)。
  • 很难排除故障
  • 一些网站包含相对于/或不正确的绝对链接或链接。

相反,要在域配置和可用之前测试站点,只需:-

  • 按照您通常的做法配置NGINX
  • 在客户端PC上的主机文件中添加一个条目,以将名称解析为正确的IP。

在Linux上,主机文件是/etc/hosts。

在Windows上,主机文件是c:\windows\system32\drivers\etc\hosts

下面是一个示例主机文件条目216.58.216.78 www.myfunkysite.com

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/804746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档