我想在我的虚拟服务器上使用Debian 9和Apache 2设置一个子域,该子域指向/ var / www / html / test中的目录。 还启用了SSL和“让我们加密”,因此也应该使用https来访问子域。
我的000-default.conf
文件如下:
<VirtualHost _default_:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
<VirtualHost _default_:443>
DocumentRoot /var/www/html
ServerName www.example.com
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
SSLEngine on
ServerAlias www.example.com
SSLCertificateFile /etc/letsencrypt/live/www.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
文件default-ssl.conf
如下:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
ServerName www.example.com
ServerAlias example.com
</VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
我制作了000-default.conf
文件的新副本,将其命名为“ test.example.com.conf”,并通过a2ensite启用了它。该文件如下所示:
<VirtualHost _default_:80>
ServerAdmin webmaster@test.example.com
DocumentRoot /var/www/html/test
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
<VirtualHost _default_:443>
DocumentRoot /var/www/html/test
ServerName test.example.com
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
SSLEngine on
ServerAlias test.example.com
SSLCertificateFile /etc/letsencrypt/live/www.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
我的hosts
文件包含条目SERVER_IP_ADDRESS test.example.com
。
DNS服务器的“ A”条目带有指向SERVER_IP_ADDRESS
的test.example.com。
从另一台计算机ping test.example.com以“找不到主机”结束,并且在虚拟服务器上执行ping操作会导致自身响应。
那为什么网络浏览器只显示“找不到服务器”? 我忘记了什么吗?我的配置有问题吗?
答案 0 :(得分:0)
经过长期测试和研究,我发现了错误! 共有3:
test.example.com.conf
文件有一个错误,该错误使子域只能通过https使用:<VirtualHost _default_:80>
内缺少ServerAlias指令因此,到目前为止,它尚需改进...
我希望我会为我的错误提供帮助!