Jump to content

Заголовок Link и 502 Bad Gateway


siv1987
 Share

Recommended Posts

Обновился клиент до IPS 4.4.0 и на некоторых страницах начала появляться ошибка 502 Bad Gateway.

Сервер состоит из связки Nginx и Apache. Было понятно, что скорее всего проблема где-то с заголовками, посмотрел ответ сервера а там длинный заголовок Link:

 

Link: //site.ru/applications/core/interface/howler/howler.core.min.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_global/root_library.js.9f1ede1683ae47a8d02ec223b2003ac4.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_global/root_js_lang_6.js.3d73a106a81526002c53287df9c8c9f3.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_global/root_framework.js.285949efd9c25175cc74470e44f099f3.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_core/global_global_core.js.82f7a73924d6576117cb0f85269a82e8.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_core/plugins_plugins.js.50cecb988c94cd9954e3c54846999fe3.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_global/root_front.js.2720c5408f001dd74b0196b7a62f8f04.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_core/front_front_widgets.js.1e466f4287b96992d2cf396bb3bb6c41.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_gallery/front_front_browse.js.6d7409d6d924824a8582779569a35799.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_forums/front_front_forum.js.cb0db55f5ca74ed352800e3cb39ca095.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/javascript_global/root_map.js.27c041d7c51bc47a161dfcf0871cd3fe.js?v=1875ff7478; rel=preload; as=script, https://site.ru/uploads/css_built_11/341e4a57816af3ba440d891ca87450ff_framework.css.cdff94d5a4d2a4830c145453eaa926df.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/05e81b71abe4f22d6eb8d1a929494829_responsive.css.6e3db337157ace55552af8067642774d.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/20446cf2d164adcc029377cb04d43d17_flags.css.3da20780c6a70060a3db52ccda2530b5.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/90eb5adf50a8c640f633d47fd7eb1778_core.css.79df594e9c39e5be37a99916ab78c2a4.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/5a0da001ccc2200dc5625c3f3934497d_core_responsive.css.042f3aa22ef54121994ff095821788d4.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/62e269ced0fdab7e30e026f1d30ae516_forums.css.b165718214136a3e8b025da7e0c7258b.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/76e62c573090645fb99a15a363d8620e_forums_responsive.css.1a5e7ae3481f706c758cb1656cfad0cd.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/aa0d3895a07f810ea9ac4b0e03928774_promote.css.1bc4b40b32d155b7812085df76fa20b5.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/311e677be1fd9bd34c1ccbaf8c789d99_promote_responsive.css.6a6056b10ebb733aae37a4fd2beba6fc.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/ecf8cbf597c675f333fa61d7fe877660_widgets.css.24bc82f11b454d4ce155573b8b1264b6.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/63225940445060c5a9f21d31e95bf58e_downloads.css.ea0b1c6b905aceeb08ac569714c82b5c.css?v=1875ff7478; rel=preload; as=style, https://site.ru/uploads/css_built_11/258adbb6e4f3e83cd3b355f84e3fa002_custom.css.f92faea88f40a8fcea5f9187e79ac648.css?v=1875ff7478; rel=preload; as=style

 

Что за дичь они там переписали в system\Output\Output.php? Зачем это? В 4.3, в Link добавлялся только $tag['rel'] == 'preload'

Заголовок пока закаментировал. Форум заработал. Попробую увеличить размер заголовков в nginx.

Link to comment
Share on other sites

Обновился клиент до IPS 4.4.0 и на некоторых страницах начала появляться ошибка 502 Bad Gateway.

Была такая же беда очень долгое время, но при открытие тем - когда просматриваешь большое количество тем. Выпадало на 502 Bad Gateway. Исправил это путём тюнинга nginx.conf

Link to comment
Share on other sites

А какие конфиги конкретнее?

В тройке такой фигни нету, там единственное что может раздуться это кука прочитанных тем markread. Хотя кукисы это тот же заголовок и они влияют на их размер.

Link to comment
Share on other sites

там единственное что может раздуться это кука прочитанных тем markread

Вот из-за них и было. Что только не делал - ничего не помогало. Только редактирование конфига нгинкс спасло.

 

А какие конфиги конкретнее?

После того как я внёс в конфиг вот это:

 

events {
   worker_connections  10240;
}

http {
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;

keepalive_timeout 60;
types_hash_max_size 2048;

client_max_body_size  1024M;
client_body_buffer_size  4M;

proxy_connect_timeout 300;
proxy_send_timeout  300;
proxy_read_timeout 300;
proxy_buffer_size  64K;
proxy_buffers  8 256K;
proxy_busy_buffers_size  256K;
proxy_temp_file_write_size  10M;

server_names_hash_bucket_size 128;

 

Что именно из этого помогло - не знаю. Но тьфу тьфу всё норм сейчас.

  • Upvote 1
Link to comment
Share on other sites

Прочитал более подробно описание этого заголовка

 

Предварительная выборка ссылок - это механизм браузера, который использует время простоя браузера для загрузки или предварительной выборки документов, которые пользователь может посетить в ближайшем будущем. Веб-страница предоставляет набор подсказок предварительной выборки для браузера, и после того, как браузер завершит загрузку страницы, он начинает тихую предварительную выборку указанных документов и сохраняет их в своем кэше. Когда пользователь посещает один из предварительно выбранных документов, его можно быстро открыть из кеша браузера.

Сделано якобы для ускорения загрузки страниц, но они впихнули туда все ссылки css и скриптов форума, превысив стандартный размер тело заголовка.

Так как в основном статика кешируются, значение этот заголовок имеет только при первом посещение на форуме, или отсутствие кеша у браузера.

 

Fix

Открыть /system/Output/Output.php

 

$this->sendHeader( "Link: " . implode( ', ', $preload ) );

Заменить (закаментировать)

//$this->sendHeader( "Link: " . implode( ', ', $preload ) );

 

И плагин тля тех кто не хочет править файлы и нет возможности редактировать настройки сервера

 

Fix 502 Bad Gateway.xml

Link to comment
Share on other sites

Вобщем путем научного метода тыка нашел нужные конфиги - proxy_buffers и proxy_buffer_size.

По умолчанию они ровны 8K (4K в зависимости от системы). Увеличил их вдвое, проблема больше не наблюдается.

 

proxy_buffer_size  16K;
proxy_buffers  8 16K;

  • Upvote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...