具有别名和代理匹配的 Apache

标签 apache

我正在运行一个幽灵网站,该网站由 apache 使用 vhost 中的代理作为前端。 但是,我知道有一个额外的文件夹我需要提供访问权限 - icookie:

[root@gce ~]# ls -l /var/www/html/blog
total 252
-rw-r--r--.   1 apache apache   4511 Feb 27  2017 config.example.js
-rw-r--r--.   1 apache apache   4510 May  2 20:51 config.js
drwxr-xr-x.   6 apache apache   4096 Feb 27  2017 content
drwxr-xr-x.   5 apache apache   4096 Feb 27  2017 core
-rw-r--r--.   1 apache apache  31937 Feb 27  2017 Gruntfile.js
**drwxrwxr-x.   3 apache apache   4096 Oct 20 22:37 icookie <-------
-rw-r--r--.   1 apache apache    725 Feb 27  2017 index.js
-rw-r--r--.   1 apache apache   1065 Feb 27  2017 LICENSE
drwxr-xr-x. 109 apache apache   4096 Feb 27  2017 node_modules
-rw-r--r--.   1 apache apache 166948 Feb 27  2017 npm-shrinkwrap.json
-rw-r--r--.   1 apache apache   3047 Feb 27  2017 package.json
-rw-r--r--.   1 apache apache   2942 Feb 27  2017 PRIVACY.md
-rw-r--r--.   1 apache apache   4710 Feb 27  2017 README.md

但是,在将以下配置添加到 apache 后,我仍然无法访问 icocookie 文件夹中的任何文件。据我所知,以下内容应该有效。

<VirtualHost *:443>
    ServerName website.com
    ServerAlias direct.website.com www.website.com

    ProxyPass /icookie !
    Alias /icookie /var/www/html/blog/icookie
    <Directory /var/www/html/blog/icookie>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>

    ProxyPass / http://10.240.0.3:2369/
    ProxyPassReverse / http:/10.240.0.3:2369/

    ErrorLog #########
    CustomLog ######### common

    SSLEngine on
    SSLCertificateFile ############
    SSLCertificateKeyFile ########
</VirtualHost>

有什么想法吗?

最佳答案

ProxyPassReverse 指令中,第二个参数在协议(protocol)名称和 IP 地址之间缺少一个 / 字符。

根据 the apache documentation

if you are creating an Alias to a directory outside of your DocumentRoot, you may need to explicitly permit access to the target directory.

Alias "/image" "/ftp/pub/image"
<Directory "/ftp/pub/image">
    Require all granted
</Directory>

对于您的示例,您可能需要像这样添加 Require 指令:

<VirtualHost *:443>
    ServerName website.com
    ServerAlias direct.website.com www.website.com

    ProxyPass /icookie !
    Alias /icookie /var/www/html/blog/icookie
    <Directory /var/www/html/blog/icookie>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            Allow from all
            Require all granted
    </Directory>

    ProxyPass / http://10.240.0.3:2369/
    ProxyPassReverse / http://10.240.0.3:2369/

    ErrorLog #########
    CustomLog ######### common

    SSLEngine on
    SSLCertificateFile ############
    SSLCertificateKeyFile ########
</VirtualHost>

关于具有别名和代理匹配的 Apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52918962/

相关文章:

apache - Htaccess 将目录重定向到另一个目录,但允许主文件夹 URL 保持不变

php - .htaccess 中的 RewriteRule 有问题

java - 调试问题关闭 Apache Tomcat

apache - php.ini 与 .htaccess 中的 suPHP

javascript - PureChat 和 Mod Deflate

web-services - tomcat Axis 文件server-config.wsdd从哪里来?

PHP 除法返回不同的结果 (Linux/Windows)

java - 如何使用密码保护 Apache Tomcat 服务器上的 HTTP Get 请求?

android - Apache Math 上的私有(private)访问

apache - 我如何在 Apache 的 mod_proxy 后面使用密码保护应用程序?