处理没有子域名的不同“域名”

处理没有子域名的不同“域名”

我有一台服务器(“myserver”),它只允许通过 HTTPS 向端口 80 发送请求。另一个限制是我无法创建子域,因此我必须坚持使用“myserver”。

现在,我有两个应用程序:“frontend”在端口 8000 上运行,“backend”在端口 9000 上运行。理想情况下,我会使用不同的文档根目录、服务器名称等创建两个虚拟主机:“frontend.myserver”和“backend.myserver”,但由于这是不可能的,所以我认为我必须使用诸如“myserver/frontend”和“myserver/backend”之类的路径。

可以这样做吗?您知道哪个配置指令允许我这样做吗?也许使用别名指令?

答案1

是的,您可以只使用一个 IP 地址来使用子域名。在 Apache 中,您必须设置虚拟服务器。

查看此处的第一个例子:https://httpd.apache.org/docs/2.2/vhosts/examples.html

请注意,您要为要服务的每个站点设置每个虚拟服务器。请确保设置以下各项:

  1. 每个虚拟服务器的监听器为 *:80
  2. 指向每个站点的内容目录的 DocumentRoot 值
  3. 您要提供的每个 URL 的 ServerName 值

    <VirtualHost *:80>
    DocumentRoot /www/frontendcontent
    ServerName frontend.myserver
    </VirtualHost>
    
    <VirtualHost *:80>
    DocumentRoot /www/backendcontent
    ServerName backend.myserver
    </VirtualHost>
    

如果您希望 example.org 和 www.example.org 之类的东西能够正常工作,您可能还需要使用 ServerAlias 指令。为此,您可以像添加 ServerName 行一样添加 ServerAlias,但要指定要为该虚拟服务器 ServerName 工作的别名。这是有关 ServerAlias 的文档,但我建议您先让上述内容正常工作,然后在必要时处理 ServerAlias: http://httpd.apache.org/docs/2.2/mod/core.html#serveralias

相关内容