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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

nginx

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

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Q&A

解決済

2回答

717閲覧

nginxをプロキシサーバーとして使用する場合のconfファイルtry_files項目の書き方について

ffjeiwjfew

総合スコア5

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

nginx

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

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

0グッド

0クリップ

投稿2020/01/13 05:43

try_files項目は、引数の順番にファイルが存在しているかを確認してあったらそれを返すものかと思います。
プロキシサーバーとしてnginxを利用する場合はおおよそ

try_files $uri $uri/ @proxy_server_location;

のようになっていて、基本的にはnginxのデフォルトルートである
/usr/share/nginx/html配下を見て、無い事を確認してから@proxy_server_locationに飛ばすようになっていると思います。

しかし最初から/usr/share/nginx/htmlに何かおくわけでもなく、ただプロキシとして使いたい場合

try_files @proxy_server_location

のようにしたいのですが、引数が二つ以上ないとダメな仕様となっています。

仕方なしに

try_files @proxy_server_location @proxy_server_location;

と書いているのですが、同値を連続で書いていて、どうも最適な書き方をできていると思えません。

プロキシサーバーとして利用する場合は皆さんどのように設定していますか?
プロキシサーバーとして利用する場合にお勧めの書き方はあったりしますでしょうか?

(参考:こんな感じで利用しています) upstream testapp { ip_hash; server {IP}:60000; server {IP}:60001; } try_files @proxy_server_location @proxy_server_location; location @proxy_server_location { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://testapp; }

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

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

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

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

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

guest

回答2

0

ベストアンサー

例えば、Nginx の「/」を http://testapp/ に紐付けるのであれば、以下のように try_files を使わずに、直接 proxy_pass でプロキシするといいと思います。

location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://testapp; }

投稿2020/01/13 15:12

TaichiYanagiya

総合スコア12146

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

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

ffjeiwjfew

2020/01/14 12:20

まさしくその通りでした、一人でやっているとたまに意味不明な事をしていて自分でも驚きます ありがとうございます。
guest

0

try_files が不要なら 使わなければ良いんじゃないかなと思います。

upstream testapp { ip_hash; server {IP}:60000; server {IP}:60001; } server { listen 0.0.0.0:80; server_name localhost; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://testapp; }

投稿2020/01/13 15:06

編集2020/01/13 15:07
take88

総合スコア1379

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

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

ffjeiwjfew

2020/01/14 12:20

まさしくその通りでした、一人でやっているとたまに意味不明な事をしていて自分でも驚きます ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問