【发布时间】: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