我希望在vps代理上部署nginx / dns服务器,该服务器映射到不同地理位置的真实后端。后端运行apache,mysql,dovecot,postfix。它是付费邮件服务器。用户通过apache通过php进入mysql,当用户设置IMAP时,dovecot / postfix将它们从mysql中汇集并传递或使用smtp outbound。
我在nginx.conf文件中读到了一些内容,我可以在代理上声明邮件主机名:
mail {
server_name mail.example.com;
...
}
此mail.example.com是DNS中列出的example.com邮件交换器的实际mx?这是来自的地方:
“正如您所看到的,我们在邮件上下文的顶部声明了此服务器的名称。 这是因为我们希望将每个邮件服务作为mail.example来处理。 COM。即使运行NGINX的机器的实际主机名不同, 并且每个邮件服务器都有自己的主机名,我们希望这个代理是单点 我们的用户参考。这个主机名将在NGINX的任何地方使用 需要提供自己的名称,例如,在初始SMTP服务器问候语中。“
因此,根据我的理解,除了mail.example.com之外,代理的物理主机名应该是其他东西。那么在代理的DNS中,我可以将其定义为anyhost.example.com?代理也会在后端代理回到我的apache。
最后,在后端,如何为此设置DNS?我为运行apache,mysql,dovecot,postfix的实际盒子选择了什么主机名?它全部放在一个盒子里。据我所知,在注册商处,我指出两个名称服务器,这些应该是两个代理,这样运行挖掘只会拉出代理和MX,它应该“知道”在代理上。
答案 0 :(得分:0)
在您的情况下,包括代理在内的一个框中的所有服务,您可以设置只能从localhost / 127.0.0.1访问的apache,mysql和其他服务。然后从nginx你放 上游:127.0.0.1:80 上游:127.0.0.1:3306
因此,nginx正在提供前端请求并将它们转发给指定的服务