URLを書き換えて別の仮想ホストに送信したいと思います。ここでNginxプロキシ前の書き換え
は私の最初のホストである場合:/ var/www /のエラーで
upstream splunk {
server 127.0.0.1:8000;
}
upstream test{
server 127.0.0.1:88;
}
server {
listen 88;
root /var/www/errors/;
index index.html;
location ~* ^.+\.(jpeg|gif|png|jpg)
{
root /var/www/images/;
}
}
/:ここ 495.html 496.html 404.html
は私の代理です:
server {
listen 443 ssl spdy default_server;
error_page 404 @404;
error_page 495 @495;
error_page 495 @496;
location @404
{
rewrite^/404.html break;
proxy_pass http://test;
}
location @495
{
rewrite^/495.html break;
proxy_pass http://test;
}
location @496
{
rewrite^/496.html break;
proxy_pass http://test;
}
location/
{
if ($ssl_client_verify = NONE)
{
return 496;
}
if ($ssl_client_verify != SUCCESS) {
return 495;
}
proxy_pass http://splunk;
proxy_set_header X-Remote-User $username;
proxy_set_header X_Remote_User $username;
proxy_set_header X-SSL-Client-Serial $ssl_client_serial;
proxy_set_header X-SSL-Client-Verify $ssl_client_verify;
proxy_set_header X-SSL-Client-S-DN $ssl_client_s_dn;
proxy_set_header X-SSL-Client-S-DN-CN $username;
}
}
最初のサーバーは正常に動作しており、index.html、404.htmlなどに問題なくアクセスできます。 2番目のサーバーは、最初のサーバーの適切なページに送信するためにURIを書き換える必要があります。私の現在の設定では、私は400 Bad Requestを得続けます。
事前にどうもありがとう
EDIT:break
キーワードを使用すると、ページが正しくリダイレクトされます。残念ながら、ターゲット・ページ(404.htmlのインスタンス)のイメージはロードされず、サーバーは400 Bad Requestを送信します。この仮想ホストに直接接続すると、ページが正しく表示されるので(HTMLが正しいので)、これは奇妙です。
EDIT2:第二バーチャルホストからのアクセスログ:
172.20.175.133 - - [19/Mar/2016:16:09:31 -0700] "GET/HTTP/1.1" 400 728 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"
172.20.175.133 - - [19/Mar/2016:16:09:32 -0700] "GET /logo.jpg HTTP/1.1" 400 728 "https://secondvhost.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"
172.20.175.133 - - [19/Mar/2016:16:09:32 -0700] "GET /images/logo.jpg HTTP/1.1" 400 728 "https://secondvhost.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"
172.20.175.133 - - [19/Mar/2016:16:09:32 -0700] "GET /var/www/images/logo.jpg HTTP/1.1" 400 728 "https://secondvhost.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"
172.20.175.133 - - [19/Mar/2016:16:09:32 -0700] "GET /favicon.ico HTTP/1.1" 400 728 "https://secondvhost.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"
最初バーチャルホスト(ランディングもの)からの400がありません。
'err' doesnの有効なホスト名のように見えません。エラーログには詳細情報が含まれている可能性があります。 – Kyle
私はそれをテストするために名前を変更しました。それはアップストリームサーバーの名前に過ぎません。この部分はうまくいきますが、現在正しく読み込まれていない写真だけが表示されます。 – Arkon
ポート88でリッスンしていますが、アップストリームの設定で指定していないようです – Kyle