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

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

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

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

Q&A

1回答

1458閲覧

ネスト配下パスを全てトップにレダイレクトさせたい

tuioku

総合スコア42

nginx

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

0グッド

0クリップ

投稿2020/10/23 11:49

編集2022/01/12 10:55

下記のURLのように/配下全てをトップにproxy_passでhttp://127.0.0.1:4000にリダイレクトさせたいのですが、
エラーになってうまくいきません。
おそらく正規表現のパスとconf設定のlocation / {とかぶってしまってエラーになっているんだと思います。

どうすれば配下全てをトップにリダイレクトさせるとができますか??

http://192.168.128.226:4000/hogehoge
→ 下記にプロキシパスとして転送したい
http://192.168.128.226:4000/

しかしハードコーディングでは上手くいくが正規表現ではうまくいかないです。
Kubernetes の中なので、やや複雑ですが、ブラウザだと192.168...ですが、それをlocalhostに転送しています。

ブラウザ → Kube → dockerというイメージです。

nginx

1server { 2 # ポート番号はdeployment.ymlに合わせる 3 # 開発環境と同じポートにしたかったため4000 4 listen 4000; 5 listen [::]:4000; 6 server_name localhost; 7 8 set $host_path 127.0.0.1:4000/; 9 10 root /usr/share/nginx/html; 11 index index.html index.htm; 12 13 #charset koi8-r; 14 #access_log /var/log/nginx/host.access.log main; 15 16 location ~* .(gif|jpg|jpeg|js|css|ico)$ { 17 root /usr/share/nginx/html; 18 expires 10d; 19 } 20 21 #これだとうまくいく 22 #location /checkout { 23 # proxy_pass http://127.0.0.1:4000/; 24 #} 25 26   # これもうまくいく 27  #location /checkout { 28 # proxy_pass http://127.0.0.1:4000/; 29 #} 30 31 location ~ [a-z]*$ { 32 proxy_pass http://127.0.0.1:4000; 33 } 34 35 location / { 36 root /usr/share/nginx/html; 37 index index.html index.htm; 38 } 39 40 #error_page 404 /404.html; 41 42 # redirect server error pages to the static page /50x.html 43 # 44 error_page 500 502 503 504 /50x.html; 45 location = /50x.html { 46 root /usr/share/nginx/html; 47 } 48 49 # proxy the PHP scripts to Apache listening on 127.0.0.1:80 50 # 51 #location ~ .php$ { 52 # proxy_pass http://127.0.0.1; 53 #} 54 55 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 56 # 57 #location ~ .php$ { 58 # root html; 59 # fastcgi_pass 127.0.0.1:9000; 60 # fastcgi_index index.php; 61 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 62 # include fastcgi_params; 63 #} 64 65 # deny access to .htaccess files, if Apache's document root 66 # concurs with nginx's one 67 # 68 #location ~ /.ht { 69 # deny all; 70 #} 71}

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

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

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

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

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

guest

回答1

0

解決方法の一つとしてlocation /のなかにurlの文字列を見てプロキシさせちゃうっていう方法なら上手くいくかもしれないですね。

投稿2020/10/23 12:36

tuioku

総合スコア42

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問