#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
- здесь мне не совсем ясно, куда поместить эти каталоги. Должен ли я поместить содержимое каталога браузера в папку wwwroot, поскольку эти файлы предназначены для рендеринга на стороне клиента?
- куда поместить каталог сервера?
- Нужно ли мне устанавливать 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 / статья также дает некоторое представление, но не с большой ясностью.
Надеюсь, вы, ребята, лучший способ развертывания.