質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

1回答

1182閲覧

Nginxのリバースプロキシでオブジェクトストレージ上の画像にアクセスできない

退会済みユーザー

退会済みユーザー

総合スコア0

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

0クリップ

投稿2017/10/23 00:46

編集2022/01/12 10:55

はじめまして。
Conoha VPS を使用して小規模なサイトを構築しており、先日 Conoha のオブジェクトストレージを契約しました。

###前提・実現したいこと
現在 VPS 上に配置している画像をオブジェクトストレージ上に移動し、Nginx からリバースプロキシでオブジェクトストレージ上にある画像にアクセスするようにしたいです。

###発生している問題・エラーメッセージ
proxy_pass でオブジェクトストレージを指定すると画像が表示されず Nginx のエラーページが表示されてしまいます。

###該当のソースコード

conf

1location /thumb { 2 set $os_uri 'object-storage.tyo1.conoha.io/v1/nc_テナントID/コンテナ名' 3 proxy_pass https://$os_uri; 4}

###試したこと
・オブジェクトストレージ上のコンテナは公開設定済みであり、ブラウザから直接画像が開けることは確認済みです。
・html にオブジェクトストレージ上画像への URL を記述し、問題なく表示されることを確認しました。
・proxy_pass に外部サーバのドメインを直接指定すると挙動がおかしくなる事があるとの記事を見つけたため、一旦変数にセットするようにしました。
・変数内に期待通りの URI が入っているか add_header を使って確認しました。
・Nginx から同 VPS 内に配置した Anapche へリバースプロキシを設定していますが、そちらは問題なく動いています。
・エラーログ、アクセスログに手掛かりになる様な情報は出力されていませんでした。
・location /thumb を location ^~ /thumb にしましたが症状は変わりませんでした。
・location 内に入っているかどうかは rewrite を用いて確認しました。


よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2017/10/23 00:59

nginx のログファイルに 何かメッセージは出ていないでしょうか?
退会済みユーザー

退会済みユーザー

2017/10/23 01:08

エラーログもアクセスログも確認しましたが特にそれらしいものは出力されていませんでした。
CHERRY

2017/10/23 01:24 編集

「Nginx のエラーページが表示」されているのにログが残らないというのは変ですね。考えられる原因としては、nginx の設定で、他に優先度が高い設定があってそちらとマッチしていて該当する部分にたどり着いていない可能性がありそうです。
退会済みユーザー

退会済みユーザー

2017/10/23 01:45

説明不足でした。アクセスしたログは出ています。エラーなどは出ていません。
CHERRY

2017/10/23 02:19 編集

/thumb へのアクセスログはあって、アクセスログが、404 になっているということでよろしいでしょうか? この手の原因を探すのに エラーコードは、重要です。 差し障りなけれなければ、ドメインやIPアドレス等を置き換えて、関連するログを質問に追記してください。
退会済みユーザー

退会済みユーザー

2017/10/23 02:29

そうです。アクセスログに404が出力されています。
CHERRY

2017/10/23 03:09 編集

「location /thumb」は、評価順が低いので、設定ファイルで他に一致する条件があるとそちらが優先されると思います。この条件を評価順が高めの前方一致である「location ^~ /thumb」に変えてみると状況が変わるでしょうか?
退会済みユーザー

退会済みユーザー

2017/10/23 04:38

「location ^~ /thumb」にしましたが変わりません
退会済みユーザー

退会済みユーザー

2017/10/23 04:39

ここは「質問への追記・修正の依頼」の欄だそうなので下の「解決方法」に書いていただけませんか?
CHERRY

2017/10/23 05:19 編集

「他に優先度が高い設定があってそちらとマッチしていて該当する部分にたどり着いていない可能性がありそうです。」については、どうでしょうか? (現時点では回答にたどり着けそうな内容がないので、何かヒントになる部分がないかと思って、情報を得るためにこちらの欄で聞いています。)
退会済みユーザー

退会済みユーザー

2017/10/23 06:03

rewrite でオブジェクトストレージにリダイレクトするように location 内で設定してみましたが、リダイレクトされましたので location 内に入っていると思います。
apatch

2017/10/24 04:58

記述ミスでしょうか proxy_pass https//$os_uri; --> proxy_pass https://$os_uri;
退会済みユーザー

退会済みユーザー

2017/10/24 10:21

すみません、記述ミスです。
guest

回答1

0

プロキシー先の URL の最後に「/」は必要ないですか?

(proxy_pass http://aaa.example.com/bbb; の場合) http://(servername)/thumb/ccc.jpg → http://aaa.example.com/bbb/thumb/ccc.jpg (proxy_pass http://aaa.example.com/bbb/; の場合) http://(servername)/thumb/ccc.jpg → http://aaa.example.com/bbb/ccc.jpg

投稿2017/10/23 14:45

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/23 23:25

「/」 は必要ありません。 オブジェクトストレージ側のコンテナ以下は現在のVPS上と同じ構造にしてありますので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問