Как развернуть Angular 11 Universal в Ubuntu Nginx

#angular #nginx #.net-core #server-side-rendering #angular-universal

#angular #nginx #.net-ядро #рендеринг на стороне сервера #angular-универсальный

Вопрос:

Я пытаюсь перейти с моего существующего приложения CSR на Angular Universal SSR и теперь собираюсь развернуть на рабочем сервере.

Существующая конфигурация соответствует Ubunto 18.04 и Nginx.Серверный API Netcore 3.1.

Существующая структура каталогов:

 --html
---All .dotnet assemblies and dlls
---wwwroot
----Angular files
 

Теперь после сборки с помощью cli

 npm run build:ssr
 

В соответствии с Angular 11 у меня есть два каталога:

 server
browser
 
  1. здесь мне не совсем ясно, куда поместить эти каталоги. Должен ли я поместить содержимое каталога браузера в папку wwwroot, поскольку эти файлы предназначены для рендеринга на стороне клиента?
  2. куда поместить каталог сервера?
  3. Нужно ли мне устанавливать nodejs или express на сервере?

К вашему сведению, у меня есть эта конфигурация, которая отлично работает с CSR:

 server {
    listen 80;
    return 301 https://$host$request_uri;
}

server {
    listen 443 default ssl;
    server_name website.com;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
    gzip on;
    gzip_static on;    
    gzip_types font/woff2 text/plain text/css application/json application/x-javascript text/xml application/xml application/xml rss text/javascript application/javascript;
    gzip_proxied  any;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;

         location / {
           index index.html
         #try_files $uri$args $uri$args/ /index.html;
        #try_files $uri $uri/ /index.php?$args;
         #try_files $uri $uri/ index.html;
        #try_files $uri$args $uri$args/ $uri $uri/ /index.html =404;
        #expires -1;
            add_header Pragma "no-cache";
            add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
            try_files $uri$args $uri$args/ $uri/ /index.html =404;
        root /home/winnie/www/html/wwwroot;
    }

        location /api/ {
             proxy_pass http://localhost:5000;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection keep-alive;
             proxy_set_header Host $host;
             proxy_cache_bypass $http_upgrade;
            proxy_redirect http://localhost:5000 https://website.com;
        root /home/winnie/www/html;
        }

        location /content/ {
             proxy_pass http://localhost:5000;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection keep-alive;
             proxy_set_header Host $host;
             proxy_cache_bypass $http_upgrade;
            proxy_redirect http://localhost:5000 https://website.com;
        root /home/winnie/www/html;
        }


    ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem; # managed by Certbot
}
 

Я просто хочу настроить эту конфигурацию для обработки запроса Angular SSR.

Просмотрели много статей, таких как

https://github.com/angular/universal-starter/issues/514 комментарий от m98

Но здесь в моем случае нет server.js досье.

https://blog.daudr.me/painless-angular-ssr / статья также дает некоторое представление, но не с большой ясностью.

Надеюсь, вы, ребята, лучший способ развертывания.