Jettyアプリケーションサーバーに接続するApacheフロントサーバーに問題があります。
ProxyPass !
ロケーションブロックでは、アプリケーションサーバーに処理を渡さないはずでしたが、私の場合には発生しない何らかの理由で、Jettyは欠落している静的(js、cssなど)に404を表示します。
これが私のApache(v 2.4、BTW)仮想ホストブロックです:
DocumentRoot /path/to/foo
ServerName foo.com
ServerAdmin [email protected]
RewriteEngine On
<Directory /path/to/foo>
AllowOverride None
Require all granted
</Directory>
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
# don't pass through requests for statics (image,js,css, etc.)
<Location /static/>
ProxyPass !
</Location>
<Location />
ProxyPass http://localhost:8081/
ProxyPassReverse http://localhost:8081/
SetEnv proxy-sendchunks 1
</Location>
ProxyPassを使用する必要があります! <Location>
ブロック内ではなく、パス付きの引数。次に例を示します。
ProxyPass /static !
ProxyPass / http://localhost:8081/
ProxyPassReverse / http://localhost:8081/
これらのルールは、設定に表示される順序で処理されると思います。そのため、最初に除外ルールを指定してください。
Location
ブロック内で機能させる方法は、順序を逆にすることです。つまり、最も具体的なLocation
ステートメントlast:
DocumentRoot /path/to/foo
ServerName foo.com
ServerAdmin [email protected]
RewriteEngine On
<Directory /path/to/foo>
AllowOverride None
Require all granted
</Directory>
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:8081/
ProxyPassReverse http://localhost:8081/
SetEnv proxy-sendchunks 1
</Location>
# don't pass through requests for statics (image,js,css, etc.)
<Location /static/>
ProxyPass !
</Location>
これは機能します。詳細については https://httpd.Apache.org/docs/2.4/mod/mod_proxy.html#proxypass を参照してください-上記とまったく同じ例が含まれています。