ピックアップ

ConoHa VPSでのNginx経由で、DockerコンテナのWebページが表示できない件

Debian系(Ubuntu)で、

サーバー環境の1つとして、

何かないかと調べたところ、

が選択肢になり、

試すことになったので、

その際の個人的なメモ。

今回は、

Nginxを設定したけれど、

なぜか、

表示できなかった件を調査。

ConoHa VPSとは

GMOが提供しているVPSで、

  • 国内リージョン
  • SSD高速
  • 長期割りでお得
  • 個人でも使いやすい
  • GUI管理画面もわかりやすい

という点で、

個人的には、他のVPSよりも、

こちらのConoHa VPSを選択しました。

公式情報としては、

以下も参照。

アクセスできない

Nginx

実際に調べながら、

試してみましたが、

ConoHa VPSでは、

セキュリティグループ

という名前で、

サーバーへのIN/OUTのファイアウォールを設定するようです。

のなかで、

「ネットワーク」

を選択して、

その中に

「セキュリティグループ」

があるので、

そのセキュリティグループを変更することで、

自分が設定したいIP制限が可能になります。

セキュリティグループでのIP制限

こちらについては、

80, 443ポートを対応したが、

アクセスに関してはうまくいかず。

Nginx挙動確認

そもそも、

Nginxが起動中か?

systemctl status nginx

を確認したら、

● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running)

なので、起動中。

Nginxがローカルで応答してるか

curl -I localhost

で確認したら、

curl -I localhost
HTTP/1.1 200 OK
Server: nginx/1.24.0 (Ubuntu)
Date: Mon, 08 Sep 2025 08:43:47 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Tue, 02 Sep 2025 08:40:44 GMT
Connection: keep-alive
ETag: "68b6ad8c-267"
Accept-Ranges: bytes

で動いている。

DNSの確認

DNSの名前解決を確認する

digというコマンドで確認

dig sample.com +short

で確認したら、

111.111.111.111

のように、

IP表示されるが、

対象サーバーIPと一致なので問題なし。

ポート指定

Dockerコンテナのポート指定で確認。

curl -I localhost:8081

で確認したら、

$ curl -I localhost:8081
HTTP/1.1 200 OK
X-Powered-By: Next.js
Content-Type: text/html; 
charset=utf-8
Content-Length: 59368
Vary: Accept-Encoding
Connection: keep-alive
Keep-Alive: timeout=5

でレスポンスくる。

コンテナ内のNextjs自体の起動確認

Nextjsは、

試しに動かすと

ready - started server on 0.0.0.0:8081, url: http://localhost:8081
Browserslist: caniuse-lite is outdated. Please run:
 :
wait  - compiling...
event - compiled successfully in 156 ms (172 modules)

なので、

とりあえず、動く。

コンテナ内でのアクセス確認

curl http://localhost:8081

で確認すると

error - Error: connect ECONNREFUSED 127.0.0.1:33491
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1532:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 33491
}

となる。

これか。

確認したら、

.env

を開発時から持ってくるの忘れてた。

こちら対応。

コンパイル等も問題なくなった。

しかし、同じエラー

SSL証明書設定忘れ

上記の環境ファイルは、

忘れてたので、

そちらは必要なのだが、

その上で、

このサイトにアクセスできません
sample.com で接続が拒否されました。

となる、

なぜだ。

あ、もしかしてと思い、

SSL証明書を確認したら、

設定していない、

というか、設定した記憶がない。

それなのに

https://sample.com

というアクセスをしていた。

http://sample.com

のようにアクセスしてみたら、

問題なく動いた。

こちら、調整漏れで、

他の環境と同じようにいけると思って、

しっかり、設定してなかったのがダメだね。

こちら、

今回のメモ、以上。

ピックアップ

おすすめ書籍

コメント一覧

コメントはまだありません。

コメント送信

コメントを残す

広告

おすすめ記事