Я настроил nginx в качестве обратного прокси-сервера, который получает все 80 запросов и передает их на другие соответствующие веб-серверы. Одним из таких веб-серверов является также nginx, обслуживающий сайт php. Я хочу указать параметры gzip, buffer и caching, но я не уверен, на каком сервере nginx.conf их указать. На прокси или веб-сервере или обоих. Параметры, которые я хочу указать ниже.
# Compression
gzip on;
gzip_comp_level 2;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/x-javascript text/xml text/css application/xml;
# Buffers
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 2 1k;
# Caching Static Files
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
На каком конфигурационном файле сервера я могу указать это? На прокси nginx или на веб-сервере или на обоих?
Если вы укажете их на бэкэнде, они будут влиять только на этот бэкэнд.
Если вы укажете их в обратном прокси-сервере внешнего интерфейса, они потенциально могут повлиять на запросы, предназначенные для нескольких внутренних серверов. Это зависит от того, в каком контексте вы их поставили.
gzip*
а также client_*
директивы могут быть установлены в location
блоки. large_client_header_buffers
, однако может быть установлен только в http
а также server
контексты, так что это повлияет на все места на сервере, где он установлен, таким образом, все прокси-запросы, если у вас есть несколько location
блоки делают такую работу.
Если это не желательно, то вы должны по крайней мере установить это на бэкэнд-сервер.
Других решений пока нет …