同じサーバーの nginx を使用したドメインとサブドメイン

同じサーバーの nginx を使用したドメインとサブドメイン

ここでは運用よりも開発が中心です。状況: podman を使用していくつかのアプリケーションを実行しているホーム サーバー (fedora) があります。いくつかはデータベース サービスであり、さまざまなポートを使用します。これは NGINX で動作しますか?

  • を通じて個人サイトをホストしますdomain.dev。それは に存在しますlocalhost:8080
  • を通じて Fedora コックピットをホストしますcocking.domain.dev。それは存続しますlocalhost:9090
  • 他のアプリケーションは、独自のサブドメインを通じて、db.domain.dev:30001に存在するさまざまなポートを使用してホストされますlocalhost:30001。 全部で 15 個のポートを使用していると思います。

コックピットはできると思います(Webソケットを使用します)

map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}
upstream websocket {
  server localhost:9090;
}
server {
  server_name cockpit.domain.dev;
  location / {
    proxy_pass http://websocket;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Origin https://$host;
  }
}

location /ドメインに別のものを追加するだけでいいのでしょうかdomain.dev?

モデムを開いて必要なポートをすべて渡すことができます。可能であれば、certbot、google domains、google dnsについて後で質問します。できないそれを機能させましょう。

答え1

まず、nginx は HTTP プロキシであるため、リクエストをプロキシできるのは HTTP(S) プロトコル経由のみであることに留意してください。

次に、OS が 2 つの異なるアプリケーションとプロセスが同じポートをバインドすることを許可しなくなったら、別のポートをローカルホスト ポートにマップする必要があると思います。

以下の設定は機能するはずです (ポート 18080 を localhost:8080 に、ポート 19090 を localhost:9090 にマッピングしていることに注意してください)。

server {
    listen 18080;

    server_name domain.dev;

    access_log /var/log/nginx/domain.dev-access.log;
    error_log /var/log/nginx/domain.dev-error.log error;
    
    location / {
      proxy_pass http://localhost:8080;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 19090;

    server_name cockpit.domain.dev;

    access_log /var/log/nginx/cockpit.domain.dev-access.log;
    error_log /var/log/nginx/cockpit.domain.dev-error.log error;
    
    location / {
      proxy_pass http://localhost:9090;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
}

関連情報