在我新安装的 Apache/2.4.52(Ubuntu)服务器上,SSL 配置通常运行良好,Tomcat 应用程序可以代理并正常运行。
但是,root 的静态文件配置仍然不起作用。我的配置如下:
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName my.wonderful.server
DocumentRoot "/srv/www/htdocs/ssl/"
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
SSLCertificateFile /path/to/my_wonderful_server.pem
SSLCertificateKeyFile /etc/apache2/ssl.crt/my_wonderful_server-key.no_enc.pem
SSLCertificateChainFile /etc/apache2/ssl.crt/chain.txt
# app 1 proxy to tomcat
ProxyPass /appa http://localhost:8080/appa
ProxyPassReverse /appa http://localhost:8080/appa
# app 2 proxy to tomcat
ProxyPass /appb http://localhost:8080/appb
ProxyPassReverse /appb http://localhost:8080/appb
ErrorDocument 503 '<head><meta charset="UTF-8"/><title>Warning</title><style>body { height: 100%; padding: 150px; text-align: center; background-color: #f4f8f9; } h1 { font-size: 50px; } body { font: 20px Helvetica, sans-serif; color: #333; } article { width: 650px; margin: 0 auto; display: block; text-align: left; } a { color: #dc8100; text-decoration: none; } a:hover { color: #004678; text-decoration: none; }</style></head><body><article>Server Maintenance</article></body>'
ErrorLog /var/log/apache2/mywonderfulserver-error.log
LogLevel warn
CustomLog /var/log/apache2/mywonderfulserver-access.log combined
</VirtualHost>
服务器正在监听:netstat -tulpn | grep 443
给出:
tcp6 0 0 :::443 :::* LISTEN 172209/apache2
文档根目录中有一个 index.html 文件/srv/www/htdocs/ssl/index.html
这是我第一次安装 Apache 2.4。所以我可能还得启用一些模块?我遗漏了什么?
答案1
Apache 的默认行为是拒绝一切,因此您需要授予对要使用的目录的访问权限。不同发行版之间存在一些例外情况,但经验法则是您需要手动设置权限。
因此,至少你需要添加这样的块:
<Directory /srv/www/htdocs/ssl>
Require all granted
</Directory>
如果您计划在 中拥有更多目录/srv/www/htdocs
,那么最好将授权授予该目录(子目录将继承授权)。此外,重要的是,Web 服务器的用户(在基于www-data
Debian 的系统和apache
基于 Redhat 的系统上)需要有权访问文件系统上的目录。