单个域上的多个虚拟主机

好的

我通常会遇到虚拟主机和Apache的问题。我所缺少的是对它的工作原理的一个大的解释,而不是一个特定的命令,让我解释一下:

我有一个域my.domain,并且关联了一个SSL证书。我无法为诸如toto.my.domain之类的子域生成证书。

我有4个正在运行的服务:

  • Zabbix在端口443上与Apache一起运行,位于/ usr / share / zabbix中
  • Nextcloud在端口443上与Apache一起运行,位于/ var / www / html / nextcloud
  • 传输在自己的Web服务器上的端口9091上运行,位于/ usr / share / transmission
  • Emby在端口8096(http)和8920(https)上的自己的Web服务器上运行,并且上帝知道该位置

我在sites-available文件夹中创建了4个配置文件。对于Zabbix和Nextcloud,它们不是虚拟主机,而只是使用Alias和Directory指令进行配置。

  • 对于Zabbix Alias / zabbix / usr / share / zabbix
  • 对于Nextcloud别名/ nextcloud“ / var / www / html / nextcloud /”

通过此配置,我可以通过https://my.domain/zabbix访问Zabbix,并通过https://my.domain/nextcloud访问Nextcloud

对于Emby和Transmission,我想通过以下方式访问它:

因此,我通过脚本编写的副本从互联网上粘贴了以下vhost conf,它似乎适用于每个人。

传输用

<VirtualHost *:443>
        ServerName my.domain
        ServerAlias www.my.domain
        Redirect permanent /transmission https://my.domain/transmission

        RewriteEngine on
        RewriteRule /transmission[/]?$ /transmission/web/ [R]

        ProxyRequests On
        ProxyPreserveHost Off
        <Proxy *>
        Order allow,deny
        Allow from all
        </Proxy>

        ProxyPass /transmission http://127.0.0.1:9091/transmission
        ProxyPassReverse /transmission http://127.0.0.1:9091/transmission
</Virtualhost>

<VirtualHost *:80>
        ServerName my.domain
        ServerAlias www.my.domain
        Redirect permanent /transmission https://my.domain/transmission
</Virtualhost>

对于Emby

<VirtualHost *:80>
    ServerName       my.domain
    Redirect         permanent /emby https://my.domain/emby
</VirtualHost>

<VirtualHost *:443>
        ServerName my.domain

        RewriteEngine on
        RewriteRule ^/emby$ /emby/ [R]

        <proxy *>
        Order Allow,Deny
        Allow from all
        </proxy>

        ProxyRequests     Off
        ProxyPreserveHost On

        Header        set        Connection "Upgrade"
        RequestHeader setifempty Connection "Upgrade"
        Header        set        Upgrade "websocket"
        RequestHeader setifempty Upgrade "websocket"

        # Notice!!! Put me before http!!!
        ProxyPass        /socket ws://localhost:8096/socket
        ProxyPassReverse /socket ws://localhost:8096/socket

        # Notice!!! Put me after ws!!!
        ProxyPass        / http://localhost:8096/
        ProxyPassReverse / http://localhost:8096/

</VirtualHost>

问题是,由于我只有一个域名,因此我无法创建实际上不是真正的虚拟主机的“虚拟主机”。就我而言,Zabbix和Nextcloud不是Vhost,Emby和Transmission共享相同的域名,所以我们不能说这些是Vhost吗?

这些配置的结果是,如果我首先启用传输,则可以工作,但Emby无法。我收到消息您没有访问/ emby的权限

如果我先启用Emby,则Emby可以工作,但是Transmission不能。我收到消息,您无权访问/ transmission / web /

阅读此https://httpd.apache.org/docs/2.4/vhosts/name-based.html和特定语句后,我了解Apache的行为“如果在包含以下内容的虚拟主机集中找不到匹配的ServerName或ServerAlias最具体的匹配IP地址和端口组合,然后是将使用的第一个列出的匹配虚拟主机。 ”。

这就是为什么Emby在我首先启用它的情况下工作的原因,而在我首先启用Transmission的情况下也是如此。

所以最后一个问题是:如何解决!

预先感谢您的任何提示!

用户名

是的,在同一address:port上为同一域创建多个VirtualHosts没有任何意义。如果要使用相同的路径(URL),则Web服务器无法区分它们。如果它们打算服务于不同的路径,则一台VirtualHost已经可以做到这一点。

因为Emby似乎只使用路径/emby/,不需要整个根/,所以首先要相应地调整其ProxyPass;然后将所有Web应用程序的所有ProxyPass设置都放在同一VirtualHost中。同样,将所有“重定向到HTTPS”设置组合到一个VirtualHost中。

如果某些Web应用程序需要不同的设置,请使用<Location>VirtualHost内部的块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Apache上的多个SSL虚拟主机

来自分类Dev

将Apache设置为使用虚拟主机在同一域上运行多个django应用

来自分类Dev

nginx:配置不带子域的多个虚拟主机

来自分类Dev

在Linux上为Opencart设置虚拟主机/多个存储

来自分类Dev

Apache2-在没有虚拟主机的情况下为不同域安装多个证书

来自分类Dev

将多个域指向Nginx中的一台虚拟主机

来自分类Dev

将多个域指向Nginx中的一台虚拟主机

来自分类Dev

尽管有多个虚拟主机,所有流量都定向到单个目录

来自分类Dev

如何在Apache中使用单个配置文件配置多个虚拟主机?

来自分类Dev

尽管有多个虚拟主机,所有流量都定向到单个目录

来自分类Dev

我应该如何在 Apache 中使用单个配置文件配置多个虚拟主机?

来自分类Dev

Express提供多个证书/虚拟主机

来自分类Dev

使用多个虚拟主机配置Postfix

来自分类Dev

多个Tomcat 8安装或虚拟主机

来自分类Dev

使用多个虚拟主机配置Postfix

来自分类Dev

在多个虚拟主机之间共享配置

来自分类Dev

一个域而不是服务器ip或任何虚拟主机(nginx)上的SSL

来自分类Dev

Nginx 虚拟主机仅在域的 www 变体上提供静态文件

来自分类Dev

虚拟主机无法在MAMP上运行

来自分类Dev

在Websphere上创建虚拟主机

来自分类Dev

无法在 Mac 上删除虚拟主机

来自分类Dev

默认虚拟主机覆盖通配符子域虚拟主机

来自分类Dev

为什么通过后虚拟主机将代理反向包括到单个虚拟主机配置中,会影响同一vps上的其他虚拟主机

来自分类Dev

在Apache Web服务器上使用多个虚拟主机进行管理

来自分类Dev

如何设置多个IP地址以指向Wamp服务器上的不同虚拟主机?

来自分类Dev

在Apache Web服务器上使用多个虚拟主机进行管理

来自分类Dev

在apache虚拟主机中添加localhost子域

来自分类Dev

Apache虚拟主机不适用于www域

来自分类Dev

将共享的虚拟主机链接到外部域

Related 相关文章

  1. 1

    Apache上的多个SSL虚拟主机

  2. 2

    将Apache设置为使用虚拟主机在同一域上运行多个django应用

  3. 3

    nginx:配置不带子域的多个虚拟主机

  4. 4

    在Linux上为Opencart设置虚拟主机/多个存储

  5. 5

    Apache2-在没有虚拟主机的情况下为不同域安装多个证书

  6. 6

    将多个域指向Nginx中的一台虚拟主机

  7. 7

    将多个域指向Nginx中的一台虚拟主机

  8. 8

    尽管有多个虚拟主机,所有流量都定向到单个目录

  9. 9

    如何在Apache中使用单个配置文件配置多个虚拟主机?

  10. 10

    尽管有多个虚拟主机,所有流量都定向到单个目录

  11. 11

    我应该如何在 Apache 中使用单个配置文件配置多个虚拟主机?

  12. 12

    Express提供多个证书/虚拟主机

  13. 13

    使用多个虚拟主机配置Postfix

  14. 14

    多个Tomcat 8安装或虚拟主机

  15. 15

    使用多个虚拟主机配置Postfix

  16. 16

    在多个虚拟主机之间共享配置

  17. 17

    一个域而不是服务器ip或任何虚拟主机(nginx)上的SSL

  18. 18

    Nginx 虚拟主机仅在域的 www 变体上提供静态文件

  19. 19

    虚拟主机无法在MAMP上运行

  20. 20

    在Websphere上创建虚拟主机

  21. 21

    无法在 Mac 上删除虚拟主机

  22. 22

    默认虚拟主机覆盖通配符子域虚拟主机

  23. 23

    为什么通过后虚拟主机将代理反向包括到单个虚拟主机配置中,会影响同一vps上的其他虚拟主机

  24. 24

    在Apache Web服务器上使用多个虚拟主机进行管理

  25. 25

    如何设置多个IP地址以指向Wamp服务器上的不同虚拟主机?

  26. 26

    在Apache Web服务器上使用多个虚拟主机进行管理

  27. 27

    在apache虚拟主机中添加localhost子域

  28. 28

    Apache虚拟主机不适用于www域

  29. 29

    将共享的虚拟主机链接到外部域

热门标签

归档