反向代理上的域和子域

反向代理上的域和子域

因此,我创建了一个 owncloud 实例,并且我希望能够从外部网络访问它(它在内部运行良好),但一位老管理员创建了一个“反向代理”(他之前提到过)所以我试图理解他的混乱...

因此,我们有一个 godaddy 域名,domain.com,其中我已经添加了 owncloud.domain.com,所以那部分很好,现在转到反向代理..

  • 服务器 1 - 反向代理位于 DMZ 上
  • 服务器 1 - 安装了 Wordpress 并使用 SSL

  • 服务器 2 - Owncloud 服务器位于 LAN 上

  • 服务器 2 - 本身有 SSL 密钥

当我登录 domain.com 时,我得到了我的 wordpress 网站,这很棒。但是当我访问 owncloud.domain.com 时,我在 chrome 上收到错误:ERR_SSL_PROTOCOL_ERROR

我尝试了很多事情都没有成功,我希望有人能给我指明正确的方向。

以下是 sites-enabled 下的 VirtualHosts:

OwnCloud

<VirtualHost *:80>
ServerName owncloud.domain.com
    <Proxy *>
        Order deny,allow
                Allow from all
        </Proxy>    
        <Location />
        ProxyPass owncloud.domain.com
        ProxyPassReverse owncloud.domain.com
        </Location>    
</VirtualHost>

域名(WordPress 网站)

<VirtualHost *:80>
    ServerName domain.com
    ServerAlias www.domain.com
    DocumentRoot /etc/httpd/htdocs/wordpress-new
    DirectoryIndex index.php
    <Directory />
        Options None
        Order deny,allow
        Deny from all
        AllowOverride None
    </Directory>
    <Directory /etc/httpd/htdocs/wordpress-new>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

        <FilesMatch \.php$>
                SetHandler application/x-httpd-php
        </FilesMatch>

<FilesMatch "\.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template)$">
    Order allow,deny
</FilesMatch>
    RewriteEngine on
    RewriteLog logs/rewritelog

<IfModule mod_php5.c>
    php_value magic_quotes_gpc 0
    php_value register_globals 0
    php_value session.auto_start 0
    php_value mbstring.http_input pass
    php_value mbstring.http_output pass
    php_value encoding_translation 0
</IfModule>
</VirtualHost>

任何帮助都将不胜感激!!!

答案1

您的虚拟主机配置缺少该ssl部分。它仅监听 HTTP 端口 (80),因此 HTTPS (443) 上的请求不起作用。您应该首先检查是否可以使用您的配置通过 http 访问网站。

您需要类似以下内容的内容,您可以与您的内容进行比较并进行调整:

<VirtualHost *:443>
   ServerName owncloud.example.com
   ProxyRequests Off
   ProxyPass / http://owncloud.internal.net/
   ProxyPassReverse / http://owncloud.internal.net/
   SSLProxyEngine On
   SSLEngine on
   SSLCertificateFile    /etc/ssl/certs/cert.pem
   SSLCertificateKeyFile /etc/ssl/private/key.pem
</VirtualHost>

答案2

两台服务器都应安装 SSL 证书(反向代理和 owncloud)。
在反向代理的 hosts 文件中添加 owncloud 服务器的条目

即 192.168.1.1 myownlcoud.internaldomain.com

域名“myowncloud.internaldomain.com不应该可以解决从外部。另外,在反向代理配置中添加“假”主机名:

ProxyPass / http://myowncloud.internaldomain.com/
ProxyPassReverse / http://owncloud.internaldomain.com/

相关内容