【发布时间】:2018-11-10 07:15:45
【问题描述】:
我在同一个 Web 服务器中有两个网站(Ubuntu 16.04.2 LTS - Apache/2.4.18)。当我尝试使用 HTTP(端口 80)访问这两个网站时,一切正常。这是 vhosts.conf 文件内容:
<VirtualHost *:80>
ServerName site1
DocumentRoot /var/www/html/site1
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName site2
DocumentRoot /var/www/html/site2
ErrorLog ${APACHE_LOG_DIR}/site2_error.log
CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>
因此,这两个站点都可以通过“mydomain.com/site1”和“mydomain.com/site2”访问。我已经安装了一个 Let's Encrypt 证书,为了让它工作,我配置了一个这样的虚拟主机:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName mydomain.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/site_error.log
CustomLog ${APACHE_LOG_DIR}/site_access.log combined
SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
我可以使用 SSL(端口 443)成功访问这两个站点,但我不能为不同的站点使用不同的日志文件。我尝试过这样的事情:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName mydomain.com/site1
DocumentRoot /var/www/html/site1
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
Alias /site1 /var/www/html/site1
SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
<VirtualHost *:443>
ServerName mydomain.com/site2
DocumentRoot /var/www/html/site2
ErrorLog ${APACHE_LOG_DIR}/site2_error.log
CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
Alias /site2 /var/www/html/site2
SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
但它不起作用。如何区分两个站点以便拥有两个不同的日志文件?
【问题讨论】:
-
第 1 步:去了解一下服务器名称是什么。提示:
mydomain.com/site1不是一个。 -
这是我最后一次测试。我知道在这两种情况下,ServerName 应该是相同的,但是,我不知道如何区分两个站点。
-
“我如何区分两个站点以便拥有两个不同的日志文件?” - 你不能,不是只有一个域/虚拟主机,因为 CustomLog仅适用于服务器配置或虚拟主机的上下文。您想首先将其设置为
mydomain1.com和mydomain2.com,这样您实际上就有了一些可以在技术上称为“两个不同的站点”的东西。 -
如果我使用两个不同的服务器名称,那么问题是其中一个不是真实的,所以在错误日志中我看到类似:[ssl:warn] [pid 4017] AH01909:mydomain2.com :443:0 服务器证书不包含与服务器名称匹配的 ID
标签: apache ssl ubuntu-16.04 virtualhost lets-encrypt