如何使用 angular ssr 和 pm2 配置 nginx

how to configure nginx with angular ssr and pm2

我有一个问题,我真的不再知道如何使用 pm2 配置 nginx,以便当我执行 f5 时,当他们从网络共享 link 时,它会重定向并为我工作。目前在 Angular Universa 我做了 npm 运行 build: ssr。我创建了一个 dist 文件夹和 server.js 文件。 运行 在 pm2 开始 .... / server.js --name apiweb.然后在nginx中这样配置文件。

upstream ssr_khophi_nodejs {
    server 127.0.0.1:4002;
}

server {
        listen 80;
        listen [::]:80;
        root /var/www/fm/html;
        index index.html index.htm;
        server_name www.fm.com.ar fm.com.ar;

    location / {
        try_files $uri @backend;
    }
    location @backend {
        proxy_pass http://ssr_khophi_nodejs;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_cache_bypass $http_upgrade;
        proxy_redirect off;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

有谁知道正确的配置是怎样的,这样当我在网络上执行 f5 时,它不会将我重定向到正确的 link,它会告诉我“内部服务器错误”。不知道是pm2还是angular还是nginx

此致!

将其用作您的服务器块:

server {
    listen 80;
    server_name modernamedia.no;
    location / {
        proxy_pass http://localhost:4000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

仔细检查server.ts 应该这样编码

  const distFolder = join(process.cwd(), './dist/browser');

然后去angular.json

更改所有输出路径(服务器和客户端)

 "outputPath": "dist/browser",

 "outputPath": "dist/server",

现在没有 500 内部服务器错误

server {
    listen 80;
    server_name _;
    location / {
        proxy_pass http://localhost:4000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

仔细检查 server.ts 并且应该这样编码

  const distFolder = join(process.cwd(), './dist/browser');

然后去angular.json

更改所有输出路径(服务器和客户端)

 "outputPath": "dist/browser",

 "outputPath": "dist/server",

现在没有 500 内部服务器错误