Apache2 对根目录上的静态文件请求返回 403

Apache2 对根目录上的静态文件请求返回 403

在我新安装的 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-dataDebian 的系统和apache基于 Redhat 的系统上)需要有权访问文件系统上的目录。

相关内容