При использовании балансировщика нагрузки в AWS общим вариантом использования является установка SSL-сертификата на балансировщик нагрузки. Это обычно называется разгрузкой SSL или балансировкой нагрузки уровня 7. Трафик с балансировщика нагрузки на экземпляр EC2 не зашифрован и обычно превышает порт 80 (иногда 8080) (HTTP). Трафик с клиента на ваш балансировщик нагрузки определяется создателями, которые вы создали.
Балансировка нагрузки уровня 4 использует TCP для связи с вашим экземпляром EC2 и вы устанавливаете SSL-сертификат на свой веб-сервер. Затем ваш веб-сервер знает, к какому порту подключается клиент, и следующее НЕ ПРИМЕНЯЕТ.
Ваш код, на котором работает ваш веб-сайт, должен проверить, подключен ли клиент к балансировщику нагрузки, используя HTTPS. Если это правда, не перенаправляйте клиента. Если клиент подключен к балансировщику нагрузки, используя HTTP, затем перенаправляет клиент.
Следующий код PHP показывает, как читать заголовки Load Balancer, которые отправляются в ваш экземпляр EC2, чтобы определить, подключен ли клиент к HTTPS , Если вы не используете такой язык, как PHP или Nodes.js, вы также можете создавать конфигурации Apache, которые знают, как читать правильные заголовки (пример внизу).
function require_ssl()
{
global $config_require_ssl;
if ($config_require_ssl == FALSE)
{
return;
}
if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']))
{
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
{
$_SERVER['HTTPS']='on';
}
}
if(empty($_SERVER['HTTPS']) || $_SERVER["HTTPS"] != "on")
{
header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
exit();
}
}
Это код для Apache:
<VirtualHost *:80>
RequestHeader set X-Forwarded-Proto "http"
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
…
</VirtualHost>
Попробуйте использовать onPush ChangeDetectionStrategy, который улучшит производительность ваших приложений, гарантируя, что обнаружение изменений angular происходит только при запуске указанного действия.
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
@Component({
selector: 'app-country',
changeDetection: ChangeDetectionStrategy.OnPush,
templateUrl: 'country.html'
});
export class CountryComponent {}
Подробнее на: https://blog.angular-university.io/how-does-angular-2-change-detection-really-work/
На данный момент, Виртуальная прокрутка подходит лучше всего в вашем случае.
Фактически, на git в virtual-scroll внутри mat-select новые значения, не видимые & amp; большое пространство . Из того же обсуждения я нашел пример в stackbltiz , который может вам помочь.
Проверьте обсуждение проблемы в git, так как оно еще не закрыто и может привести больше примеров.