Я тестирую с помощью loader.io и заметил SSL (завершение) перед лак служит очень плохо.
Мой Digital Ocean график , похоже, показывает максимальное значение дискового ввода-вывода 1,21 МБ / с (разве это не невероятно мало? Мой SSD M4 работает со скоростью около 1,500 МБ / с, что не то же самое, что и 1,5. правильно?)
Статистика loader.io с 3000 запросов в секунду
Cache-Control: max-age=333s
Я установил Hitch как завершение SSL следующим образом:
sudo nano /etc/hitch/hitch.conf
# ADD:
## Basic hitch config for use with Varnish and Acmetool
# Listening
frontend = "[*]:443"
ciphers = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
# Send traffic to the Varnish backend using the PROXY protocol
backend = "[::1]:6086"
write-proxy-v2 = on
# List of PEM files, each with key, certificates and dhparams
pem-file = "/var/lib/acme/live/website.io/haproxy"
# END ADD
И покрыть лаком так:
sudo nano /etc/varnish/acmetool.vcl
# ADD:
backend acmetool {
.host = "127.0.0.1";
.port = "402";
}
sub vcl_recv {
if (req.url ~ "^/.well-known/acme-challenge/") {
set req.backend_hint = acmetool;
return(pass);
}
}
# END ADD
# include acmetool settings in default.vcl
cp /dev/null /etc/varnish/default.vcl
sudo nano /etc/varnish/default.vcl
# ADD:
vcl 4.0;
import std;
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
if (std.port(local.ip) == 80) {
set req.http.x-redir = "https://" + req.http.host + req.url;
return(synth(850, "Moved permanently"));
}
}
sub vcl_synth {
if (resp.status == 850) {
set resp.http.Location = req.http.x-redir;
set resp.status = 301;
return (deliver);
}
}
include "/etc/varnish/acmetool.vcl";
# END ADD
Что не так с моим настройки и как я могу улучшить производительность?
Ezt a problémát akkor tapasztaltuk, amikor az SSLTerminációt ugyanazon a szerveren futtattuk, mint a lakkot. Végül meg kellett növelnünk az ulimit maximálisan megnyitott fájloknál, és a lakk tároló tárolt elemeket a RAM helyett a lemezre helyeztük.
Az Nginx szokása az ulimitek megtörése, amikor nagy forgalmat futtat a https-en keresztül. Lehet, hogy ezt optimalizálnia kell.
Во-первых, вы должны убедиться, что Varnish эффективно кэширует вывод. Используйте varnishstat
(подсчет попаданий по сравнению с промахами) или, еще лучше, varnishhist
. Вы должны увидеть ответы от 1e-5 до 1e-4 (то есть от 0,01 мс до 0,1 мс). Обратите внимание, что совпадения представлены с помощью |
, а промахи - с помощью #
.
Еще одна возможная проблема - неувязка, как я сегодня заметил: syslog
был подан с помощью « Слишком много открытых файлов ». Посмотрите в системном журнале, есть ли у вас такая же проблема. Чтобы исправить это в systemd
, вам необходимо добавить LimitNOFILE
в раздел [Service]
вашего файла hitch.service
.