首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx多个虚拟主机配置

Nginx多个虚拟主机配置
EN

Server Fault用户
提问于 2017-09-23 12:51:17
回答 1查看 1.3K关注 0票数 3

根据我们的平台的要求,每个网站将与DNS配置一起自动托管,使网站在域名预订上运行,为每个域和子域配置Nginx。

我们需要为Nginx提供动态虚拟主机配置,因此我们提出了三个选项,如下所述。

需要建议哪一个将是一个正确的选择,因为我们的网站基础是不断增长的30至40个新网站每天和有已经注册的2000+网站的平台。

除此之外,还将考虑其他任何更好的选择。

大规模虚拟主机配置

这可以通过使用regex动态化server_name来实现。

Pros:

  • 单个文件,单个虚拟主机。
  • 无需为每一个新的域名注册重新加载Nginx。
  • 可以合并任意数量的域。

Cons:

  • 如果有人发现服务器正在处理向其发出的任何域请求,则可能导致DDoS攻击。
  • 可以减慢响应速度,因为对于每个请求数据库查询都将执行以验证域/子域是否与平台一起存在。

克服问题的方法:

  • 像Memcache或Redis这样的缓存可以用来缓存所有域和子域,因此很少有数据库查询来检查域和子域的存在(只有在缓存失败的情况下)。
  • 使用Cloudflare,可以帮助我们预防DDoS。
  • 还可以将Nginx配置为阻止某些IP的请求,这些IP发送请求的频率过高。
  • 对任何类型的攻击负责的某些Ip地址和机器人也可以使用坏的bot拦截器配置来阻止。

单个虚拟主机文件配置

当接收到对新域的请求时,脚本将在一个单独的文件中创建虚拟主机,使其对Nginx可用,启用它并重新加载Nginx。

Pros:

  • 为每个注册的新域单独的虚拟主机。
  • 只允许处理已注册的域。

Cons:

  • 需要为每个注册的新域触发脚本,这些域将以sudo用户/root用户的身份运行。
  • 可能导致需要由Nginx加载和处理的1000+文件。
  • 对于每一个新的虚拟主机,Nginx都需要重新加载。
  • 如果注册了太多的域,请求处理和管理可能会成为一个麻烦。

克服问题的方法:

  • 不要使用多个文件,而是对所有虚拟主机使用一个文件。

单文件多主机配置

当接收到对新域的请求时,脚本将在Nginx使用的单个文件中追加新的虚拟主机并重新加载Nginx。

Pros:

  • 为每个注册的新域单独的虚拟主机。
  • 只允许处理已注册的域。
  • 将所有虚拟主机的文件数量减少到一个。

Cons:

  • 由于虚拟主机条目太多,文件可能会变得很重。
  • 可以减缓Nginx的处理速度,因为有许多虚拟主机需要查看。
  • 对于每一个新的虚拟主机,Nginx都需要重新加载。

克服问题的方法:

  • 除了拥有大量虚拟主机之外,没有其他解决方案。
EN

回答 1

Server Fault用户

发布于 2017-11-11 12:01:22

我们终于决定了

单个虚拟主机文件配置

原因是,在我们的平台上注册的大多数网站都是通过子域服务的,很少会有自己的域名。因此,在这种情况下,带有通配符条目的单个文件将用于大多数网站。对于少数有自己域名的网站,我们可以有单独的主机文件,这可以被自动化。

这也有助于为每个子域以及域提供https请求。通过使用Lua脚本来管理这些主机文件,我们还可以在nginx服务器上自动化一些事情。

如果任何人有更好的选择,请回复您的意见,这将对我们有很大帮助。

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

https://serverfault.com/questions/875145

复制
相关文章

相似问题

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