网站旁边 Mailu Docker 镜像

网站旁边 Mailu Docker 镜像

我正在运行最近的版本(V1.9)码头工人图像麦璐在 Ubuntu 服务器 22.04 上。

现在我该如何经营一个网站用一些 php除此之外? Mailu 服务器有一个在端口 80 和 443 上运行的 Webmail 页面,位于 mailroot 的子目录中 www.url.com/webmail. 该网站应该在www.url.com。我不知道 docker 镜像是否使用 apache nginx 或其他什么,也不知道应该在哪个目录中放置一些 html 代码……


the ports are like this
    root@jammy:~# lsof -i -P -n | grep LISTEN
systemd-r   653 systemd-resolve   14u  IPv4  18958      0t0  TCP 127.0.0.53:53 (LISTEN)
sshd        721            root    3u  IPv4  19021      0t0  TCP *:22 (LISTEN)
sshd        721            root    4u  IPv6  19023      0t0  TCP *:22 (LISTEN)
docker-pr  4218            root    4u  IPv4  31659      0t0  TCP 192.168.2.53:995 (LISTEN)
docker-pr  4232            root    4u  IPv4  34450      0t0  TCP 192.168.2.53:993 (LISTEN)
docker-pr  4246            root    4u  IPv4  38151      0t0  TCP 192.168.2.53:587 (LISTEN)
docker-pr  4260            root    4u  IPv4  38168      0t0  TCP 192.168.2.53:465 (LISTEN)
docker-pr  4274            root    4u  IPv4  30442      0t0  TCP 192.168.2.53:443 (LISTEN)
docker-pr  4288            root    4u  IPv4  34463      0t0  TCP 192.168.2.53:143 (LISTEN)
docker-pr  4302            root    4u  IPv4  33363      0t0  TCP 192.168.2.53:110 (LISTEN)
docker-pr  4316            root    4u  IPv4  38963      0t0  TCP 192.168.2.53:80 (LISTEN)
docker-pr  4334            root    4u  IPv4  33374      0t0  TCP 192.168.2.53:25 (LISTEN)

安装的是

  • Ubuntu 服务器 22.04 LTS
  • docker 23.0.3 和 docker compose 2.17.2
  • Mailu 邮件服务器 1.9 作为 Docker 容器

答案1

有几个不同的组件必须协同工作才能实现您想要的目标。我会简要介绍一下它们,但这个答案永远不可能成为包含所有内容的全面指南 - 那将有几百页。

成分

我可以确定您需要阅读和配置的 3 个主要组件:

  1. Docker / Web 服务(主要用于端口)
  2. 反向代理
  3. DNS(域名服务)

Docker / Web 服务

首先,要明白每个 Web 服务(包括在容器中运行的服务)都可以配置为在不同的端口上运行。使用 Docker 尤其容易,因为您可以根据需要公开(发布)和映射端口(Docker 参考)。

例如,如果您想将容器中的端口 80 重新映射到主机上的端口 8080,则可以添加参数-p来启动容器:

docker run -p 8080:80 <image>:<tag>

冒号前面的端口:是主机上暴露的端口(可以根据自己的喜好更改),后面的端口:是内部端口(不能更改)。

反向代理

接下来,反向代理简单来说,反向代理可以接受不同的 DNS 请求并转发到不同的主机和/或端口,如下例所示(本例中您的主机 IP 为 10.10.10.X):

网站地址 目标主机和端口
sub1.你的域名.com 10.10.10.10:8080
sub2.你的域名.com 10.10.10.10:9090
sub3.你的域名.com 10.10.10.50:10000

这是一个非常简单的例子。当然,诀窍是让你的反向代理服务器在普通的HTTP 和 HTTPS 端口(80 和 443)。现在,当您进入https://sub1.yourdomain.com浏览器时,它会将端口上的流量重定向44310.10.10.10:8080表中所示的位置。

此外,反向代理还可以做很多其他事情,比如统一证书等。有几种反向代理解决方案,如 Apache、Nginx、Traefik、HAProxy 等。

DNS(域名服务)

最后,为了使反向代理响应 DNS 子域,必须设置 DNS 解析器。

如果需要在互联网上访问,则应在公共 DNS 服务(如 Cloudflare 等)上配置所有必需的域名。将所有域指向您的 WAN IP 地址,并将防火墙中的端口转发到您的反向代理服务器。

此外,您还可以运行自己的内部 DNS 服务,以在您的 LAN 上公开服务。这里的一些常见选项是 Bind9、Unbound 等。

实例

只是为了让你了解我的一些网络服务是如何设置的:

在此处输入图片描述

其他相关问答

此外,这里还有一些其他的答案涉及这个主题:

相关内容