ラベル Nginx の投稿を表示しています。 すべての投稿を表示
ラベル Nginx の投稿を表示しています。 すべての投稿を表示

2019/03/15

Nginxのlocationとproxy_passの末尾スラッシュによる挙動の違いを理解する

Nginxでリバースプロキシの設定をするとき、いつもlocationとproxy_passの末尾スラッシュ(Trailing Slash、トレイリングスラッシュ)による挙動の違いを忘れてしまう。ということで、locationとproxy_passのURIに末尾スラッシュをつけた場合、つけない場合でどのような挙動になるか実験した。その結果についてまとめる。

Nginxのリバースプロキシ設定は以下の4パターンになる。
パターンlocationproxy_pass
1/path/reverse-path
2/path/reverse-path/
3/path//reverse-path
4/path//reverse-path/


これに対し、4パターンのリクエストを投げて実験を行った。
  1. http://example.com/path
  2. http://example.com/path/
  3. http://example.com/path-test
  4. http://example.com/path/test

2018/09/03

Dockerコンテナ内のNginxからホストOSのlocalhostにアクセスする

開発するサービスが増えてくると、同じホスト名だけどパスによって違うサービスを表示したいことがある。たとえば、https://example.comならRailsで作ったメニューページ、https://example.com/serviceならNuxt.jsで作った別サービスといった具合だ。

できれば環境はローカルマシン内だけで完結させたいので、DockerコンテナにNginxでリバースプロキシを立ててパスによってlocalhostの違うポートにプロキシしたい。しかし、Dockerコンテナ内でlocallhostにアクセスしようとすると、コンテナ内のゲストOSのlocalhostにアクセスしてしまう。

ということでDockerコンテナ内からホストOSにアクセスする方法とまとめる。


環境は以下の通り。

  • macOS High Sierra
  • Docker CE Version 18.06.0-ce-mac70 (26399)
  • Nginx(Dockerコンテナ内)

2018/08/24

macOS(High Sierra)でChromeからlocalhostにアクセスすると極端に遅くなるときの対処法

自宅用ラップトップをMacBook Pro 2018 High Sierraに更新したのだが、Chromium系ブラウザからlocalhostにアクセスしようとすると極端に遅くなってしまう。localhostのリソースにアクセスするだけで2〜3分ほどだ。

その対処法についていくつかまとめる。



環境と詳細な症状


環境は以下の通り。

  • MacBook Pro 2018 macOS High Sierra
  • ブラウザ
    • Chrome 68
    • Chromium 70
  • ローカルサーバー
    • Docker CE Version 18.06.0-ce-mac70 (26399)
    • Docker Compose version 1.22.0
    • nginx(Dockerコンテナ内)

2016/12/06

Vue.js+Vuex、Express4、Dockerなどを使ってさくらのクラウドのAPIクライアントを作った

この記事は「さくらインターネット Advent Calendar 2016」の6日目の記事です。


さくらのクラウドのAPIドキュメントはご存知だろうか?
ドキュメントにはAPIの一覧やパラメータの詳細などが載っている。curlコマンドのサンプルも載っているので、APIを実行することはできるのだが......。


なんかイケてない。


macOSやLinuxを使っている人は問題ないが、Windowsユーザに優しくない。curl?なにそれ?
もっとインタラクティブでダイナミックに動かせるドキュメントだったらいいのに…。


ということで、さくらのクラウドのAPIをブラウザから実行できる「sacloud-api-tester」をつくった。

APIキーを入力し、左のAPIリストから試したいリクエストを選択、実行するだけでリソース操作やレスポンスを確認できる。
「SwaggerやPostmanを使え」はNGワード

2016/11/16

DockerでNginxのコンテナを作成し、https化してWebページやサービスを公開する方法

自作Webサービスを公開するために、WebサーバはApacheより人気がでてきているNginxを採用した。しかし普通にCentOSなどにNginxをインストールして設定して、など手動やシェルスクリプトでやりたくなかったので、環境構築にはDockerを使うことにした。

ということで、DockerでNginxのコンテナをつくり、Webページ(サービス)を公開する手順をまとめる。

今回つかう環境は以下のとおり。

  • CentOS 7.2(ホストOS)
  • Docker 1.12.3
  • Nginx 1.11.5


ホストOSの準備


ホストOSは、さくらのクラウドの1コア/1GBプランのCentOS 7.2を使うことにした。
イベントやたまーにWeb上で2万円クーポンを配布しているので、ありがたく使わせてもらう。

CentOSの初期設定などは、以下の記事を参考にしていただければ、スクリプト一発で完了する。

サーバを作成したら、SSHで接続、ログインする。