【问题标题】:Virtual host being ignored虚拟主机被忽略
【发布时间】:2018-02-08 17:19:33
【问题描述】:

downloads.example.net 被我的配置忽略。我将它创建为现有主机的附加虚拟主机,用于文件下载。做了一个文件夹,设置权限,设置两个虚拟主机,一个用于HTTP重写为HTTPS,另一个用于HTTPS。已经有一个虚拟主机来为打IP的人提供服务,我不想向他们展示任何东西,所以在IP上提供一个空白页面,直接来没有任何奖励。有一个 WordPress 站点在几个域上提供服务,相同的设置,重写为 HTTPS。

来 IP 并获取 /var/www/html 上的空白 index.html。来 www.example.net、www.example.info、example.net 和 example.info 并获取 WordPress 网站。通过 HTTP 或 HTTPS 访问 downloads.example.net 并获取 WordPress 网站。我通常不会在虚拟主机上拥有多个域,也不会使用重写来将人们转移到 SSL,所以想知道我在那里是否出错了。

SSL 证书在站点之间共享,因为 CloudFlare 将自己的证书添加到访问该站点的用户。

<VirtualHost *:80>
    ServerName 111.222.233.244
    ServerAdmin support@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName downloads.example.net
    ServerAlias downloads.example.info
    ServerAdmin support@example.net
    DocumentRoot /var/www/downloads

    ErrorLog ${APACHE_LOG_DIR}/downloaderror.log
    CustomLog ${APACHE_LOG_DIR}/downloadaccess.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName www.example.net
    ServerAlias example.net
    ServerAlias www.example.info
    ServerAlias example.info
    ServerAdmin support@example.net
    DocumentRoot /var/www/wordpress

    ErrorLog ${APACHE_LOG_DIR}/exampleerror.log
    CustomLog ${APACHE_LOG_DIR}/exampleaccess.log combined
</VirtualHost>

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    ServerName 111.222.233.244
    ServerAdmin support@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/example.crt
    SSLCertificateKeyFile /etc/apache2/ssl/example.key

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
                    SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
                    SSLOptions +StdEnvVars
    </Directory>
    BrowserMatch "MSIE [2-6]" \
                    nokeepalive ssl-unclean-shutdown \
                    downgrade-1.0 force-response-1.0
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
  </VirtualHost>

  <VirtualHost *:443>
    ServerName downloads.example.net
    ServerAlias downloads.example.info
    ServerAdmin support@example.net
    DocumentRoot /var/www/downloads

    ErrorLog ${APACHE_LOG_DIR}/downloaderror.log
    CustomLog ${APACHE_LOG_DIR}/downloadaccess.log combined

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/example.crt
    SSLCertificateKeyFile /etc/apache2/ssl/example.key

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
                    SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
                    SSLOptions +StdEnvVars
    </Directory>

    BrowserMatch "MSIE [2-6]" \
                    nokeepalive ssl-unclean-shutdown \
                    downgrade-1.0 force-response-1.0
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
  </VirtualHost>

  <VirtualHost *:443>
    ServerName www.example.net
    ServerAlias example.net
    ServerAlias www.example.info
    ServerAlias example.info
    ServerAdmin support@example.net
    DocumentRoot /var/www/wordpress

    ErrorLog ${APACHE_LOG_DIR}/exampleerror.log
    CustomLog ${APACHE_LOG_DIR}/exampleaccess.log combined

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/example.crt
    SSLCertificateKeyFile /etc/apache2/ssl/example.key

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
                    SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
                    SSLOptions +StdEnvVars
    </Directory>

    BrowserMatch "MSIE [2-6]" \
                    nokeepalive ssl-unclean-shutdown \
                    downgrade-1.0 force-response-1.0
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
  </VirtualHost>
</IfModule>

编辑:

第一个将 IP 添加到第一个指令的建议没有任何作用,第一个不是被服务的,而是包含域的那个。第二条和第三条评论有一个指向“重复”的链接,该页面上的建议如下所示。

apache2ctl -t
Syntax OK

apache2ctl -S
VirtualHost configuration:
*:80                   is a NameVirtualHost
     default server 111.222.233.244 (/etc/apache2/sites-enabled/000-default.conf:1)
     port 80 namevhost 111.222.233.244 (/etc/apache2/sites-enabled/000-default.conf:1)
     port 80 namevhost downloads.example.net (/etc/apache2/sites-enabled/000-default.conf:10)
             alias downloads.example.info
     port 80 namevhost www.example.net (/etc/apache2/sites-enabled/000-default.conf:25)
             alias example.net
             alias www.example.info
             alias example.info
*:443                  is a NameVirtualHost
     default server 111.222.233.244 (/etc/apache2/sites-enabled/000-default.conf:43)
     port 443 namevhost 111.222.233.244 (/etc/apache2/sites-enabled/000-default.conf:43)
     port 443 namevhost downloads.example.net (/etc/apache2/sites-enabled/000-default.conf:67)
             alias downloads.example.info
     port 443 namevhost www.example.net (/etc/apache2/sites-enabled/000-default.conf:93)
             alias example.net
             alias www.example.info
             alias example.info
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

禁用 SSL 并尝试使用只有两个主机的端口 80,但下载仍会发送到 example.net。

<VirtualHost *:80>        
    ServerName downloads.example.net
    ServerAdmin support@example.net
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName example.net
    ServerAlias www.example.net
    ServerAdmin support@example.net
    DocumentRoot /var/www/wordpress

    ErrorLog ${APACHE_LOG_DIR}/ufoerror.log
    CustomLog ${APACHE_LOG_DIR}/ufoaccess.log combined
</VirtualHost>

【问题讨论】:

  • 尝试将ServerName 后跟IP 地址放在第一个VirtualHost 块中
  • IP 没有任何区别,并且该指令不是所服务的,链接不是我的帖子的重复。检查语法和显示虚拟主机的命令似乎表明配置是正确的。 downloads.example.net 服务于 example.net 虚拟主机,我不知道为什么。添加到原始帖子的回复。
  • 80 端口的重定向工作正常吗?

标签: apache mod-rewrite


【解决方案1】:

尝试使用 -X 标志在调试模式下运行 apache,然后运行您的请求以查看发生了什么。

还有increase the loglevel

【讨论】:

    猜你喜欢
    • 2014-11-10
    • 2021-09-29
    • 1970-01-01
    • 2010-10-21
    • 2013-09-26
    • 2019-11-14
    • 2015-01-01
    • 2018-03-30
    • 1970-01-01
    相关资源
    最近更新 更多