как настроить nginx с angular ssr и pm2

#nginx #pm2 #angular-universal #nginx-config

#nginx #pm2 #angular-универсальный #nginx-config

Вопрос:

У меня проблема в том, что я действительно больше не знаю, как настроить nginx с pm2, чтобы при нажатии f5 он перенаправлял и работал у меня, когда они делятся ссылкой из Интернета. В настоящее время в Angular Universa я запустил npm build: ssr. Я создаю папку dist и server.js файл. Запуск в pm2 start …. / server.js —назовите 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 в Интернете она не перенаправляла меня на правильную ссылку, а сообщала мне «Внутренняя ошибка сервера». Я не знаю, является ли это pm2, angular или nginx.

С уважением!

Комментарии:

1. Вы разобрались с этим?

Ответ №1:

используйте это как свой серверный блок:

 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 внутренней ошибки сервера

Ответ №2:

 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 внутренней ошибки сервера