在 Nginx 反向代理后面的 VPS 上设置电子邮件服务器

在 Nginx 反向代理后面的 VPS 上设置电子邮件服务器

首先,严格意义上来说我是个业余爱好者,但我觉得这个问题的主题比超级用户更适合这里。如果我错了,我相信你们都会告诉我的。

我有一台 Ubuntu VPS,目前托管着一个网站以及一些个人 node.js 项目(其中一些在 docker 容器中,其他不在),所有这些都位于 Nginx 反向代理后面。我需要在这个 VPS 上设置一个电子邮件服务器(目前只有一个域,但易于扩展的潜力更好),但我没有这方面的经验。我需要为电子邮件客户端提供 SMTP 和 IMAP 访问权限,Web 界面不是必需的,但它作为备份总是好的。

我当时正在看poste.io因为它 1)在 Docker 容器中运行,并且 2)实际上有与我完全相同的场景网络方案页面(方案 2)尽管看起来他们没有任何关于如何以这种方式进行实际设置的文档。

我想知道:

  1. 我是否错过了一个显而易见的解决方案
  2. 有没有比 Poste.io 更好、更容易设置的解决方案
  3. 我需要在 Nginx 配置中添加什么(如果文档中没有说明的话)
  4. 我需要对 ubuntu 做哪些更改(再次说明,如果文档中还不明显的话)

谢谢。

答案1

正如 Michael 所说,您可能要考虑使用单独的 VPS,以避免现有系统上可能出现的错误设置。同时,如果现有 VPS 不是您的生计来源,那么这肯定不是什么大问题。

无论你安装自己的服务器时如何,电子邮件都很难正确设置。就我而言,我一直postfix在使用postgrey。请注意,默认情况postfix下安装了 ,courier它不能正确支持 TLS 1.2+。如果你使用该解决方案,你将需要使用dovecot

sudo apt-get install postfix postgrey

要设置的主要内容是/etc/postfix/main.cf。要更新的主要参数之一如下:

mydestination = mail.example.com, mail.example2.com, mail.example3.com

如您所见,您可以拥有任意数量的域名,而无需做太多工作。您可能需要测试,您可能还想包含普通域名(example.comexample2.com等),以便电子邮件可以像 一样发送到您的域名[email protected]

至于通过 Nginx 代理,你可以阅读这个 Nginx 页面。我从未尝试过代理电子邮件。我不太确定如果您只有一个 VPS,那有什么意义。代理有两个主要用途:

  1. 作为负载均衡器,你有一个访问点和许多 VPS,代理以各种方式分配流量 - 将数据发送到不太繁忙的 VPS

  2. 作为一种安全措施,阻止一些无效(不需要的)流量

我不太确定 Nginx 是否可以为您的电子邮件做很多事情,但我可能是错的。

注意:在 docker 中拥有网站与拥有单独的 VPS 非常相似,因此您经常需要为这些网站使用代理,尤其是在您拥有多个 VPS 的情况下。在我的终端上,我在一个 VPS 上运行许多网站,而无需代理。Apache2 可以使用 SSL 处理任意数量的网站,而无需额外的流量路由,并且它仍然可以通过阻止某些请求(请参阅 mod_security 扩展)来完成 (2) 中的一些操作。

相关内容