サブディレクトリ/場所にある Nginx + Express アプリが 404 を返す

サブディレクトリ/場所にある Nginx + Express アプリが 404 を返す

Expressアプリをhttp://website.com/appnginx をリバース プロキシとして使用し、静的ファイルも提供します。

これは私の nginx 設定です:

upstream app {
    server localhost:3333;
}

server {
    listen 80;
    server_name website.com www.website.com;
    root /var/www/website.com;

    index index.html index.htm;

    location = / {
            try_files $uri $uri/ =404;
    }
    
    location /app/ {
        alias /var/www/app/static;
        try_files $uri $uri/ @app;
    }

    location @app {
        proxy_pass http://app;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";  
    }
}

index.js ( にあります/var/www/app/static/) は 経由で何らかのリソースを要求しますfetch("/info")

app.js(にある/var/www/app/)は、上記のリソースを次のように配信するはずです。

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json())

app.get("/info", (req, res) => {
    res.header("Content-Type",'application/json');
    res.send(JSON.stringify(info));
})

app.listen(3333, () => {
    console.log("Server listening at http://localhost:3333")
})

訪問するとhttp://mywebsite.com/app静的ファイルは nginx によって提供されますが、/info404 が返されます。Nginx エラー ログ:「/var/www/website.com/info」が失敗しました (2: そのようなファイルまたはディレクトリはありません)エクスプレス アプリは実行中です ( $pm2 ls-> ステータス「オンライン」)。

プロキシ設定が正しくないか、nginx とサーバーの動作について私の側で誤解があるのではないかと思います (これが私の最初のステップです)。アドバイスをいただければ幸いです。

答え1

そのためにはDNSエントリを作成する必要があります。

コンテンツの場所を指定し、サイトとしてサーバー名を追加し、場所にコンテンツを追加します。

関連情報