Apache2将请求发送到路径及其所有子路径到另一个源

时间:2017-10-30 17:08:34

标签: apache tomcat7

我有一台运行Apache 2.2的服务器,我安装了一个WordPress实例。

我还有一个运行在端口8080上的webapp的tomcat7服务器。

我希望将每个请求发送到tomcat服务器,但博客包括:/ blog,/ blog /,/ blog / 2017/02/10 / blog-title-here /等...

我目前设法让/博客去了正确的地方,但不是个别帖子,他们总是去tomcat7,我不知道为什么。

这是我的配置文件:

<VirtualHost *:80>
    RequestHeader set X-Forwarded-Proto "http"

    AddDefaultCharset utf-8

    ServerAdmin contact@example.com
    ServerName server.example.com

    <Directory />
            Options FollowSymLinks
    </Directory>

    Alias "/blog" "/var/www/www.example.com"
    <Directory /var/www/www.example.com>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all
            Order allow,deny
            allow from all
    </Directory>

    ProxyRequests Off
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    ProxyPreserveHost on
    ProxyPass "/blog" "!"
    ProxyPass "/" "http://localhost:8080/"
    ProxyPassReverse "/" "http://localhost:8080/"

    ErrorLog ${APACHE_LOG_DIR}/error.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:443>
    RequestHeader set X-Forwarded-Proto "https"
    AddDefaultCharset utf-8
    ServerAdmin webmaster@example.com
    ServerName server.example.com

    <Directory />
      Options FollowSymLinks
    </Directory>

    Alias "/blog" "/var/www/www.example.com"
    <Directory /var/www/www.example.com>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all
            Order allow,deny
            allow from all
    </Directory>

    ProxyRequests Off
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    ProxyPreserveHost on
    ProxyPass "/blog" "!"
    ProxyPass "/" "http://localhost:8080/"
    ProxyPassReverse "/" "http://localhost:8080/"

    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/wildcard.example.com.crt
    SSLCertificateKeyFile /etc/apache2/ssl/wildcard.example.com.key
    SSLCertificateChainFile /etc/apache2/ssl/rapidssl_intermediate.crt
</VirtualHost>

主要部分是:

    Alias "/blog" "/var/www/www.example.com"
    (...)
    ProxyPass "/blog" "!"
    ProxyPass "/" "http://localhost:8080/"

我将使用/ blog开头的所有内容别名并将其发送到wordpress所在的位置而不是代理它。代理从/到tomcat的所有内容。

我唯一无法弄清楚为什么它不起作用是对/ blog / not working的请求。

我已经尝试过ProxyPassMatch,AliasMatch也无法做到。 任何帮助表示赞赏。

0 个答案:

没有答案