Задать вопрос
sam002
@sam002
Линуксойд, кодер, немного физик.

Какие есть ограничения для перенаправления запросов nginx+fastcgi?

Имеется: пара серверов (id=1-основной, на VDS; id=2-резервный(домашний)). Они синхронизируются rsync, mysql в режиме master-master, те полноценный кластер в две ноды с задержкой около 100 мс. Всё не могу подстроить nginx под работу в таком режиме, сейчас просто использую группу серверов (upstream) для fastcgi, но так сатика грузиться только с сервера id=1 и, браузеру это не нравится (при обращении резервному серверу di=2 игнорирует загрузку статики). Оба сервера с одинаковыми базами, все ссылки идентичны… В чём может быть проблема? Вот «обрубок» конфига:

fastcgi_cache_path ****<br/>
<br/>
upstream group_srv {<br/>
 server 127.0.0.1:1234;<br/>
 server 8.8.8.8:4321 backup;<br/>
}<br/>
server {<br/>
 listen 80;<br/>
 server_name google.ru <a href="http://www.google.ru">www.google.ru</a> server.google.ru;<br/>
--//<br/>
//--<br/>
 location ~* ^/statics/.+\.(js|css|png|jpg|gif|jpeg|ico)$ {<br/>
 root /var/www/google;<br/>
 rewrite ^/.*(/statics/.*\.(js|css|png|jpg|gif|jpeg|ico))$ last;<br/>
 access_log off;<br/>
 expires 7d;<br/>
 }<br/>
<br/>
location @default {<br/>
 fastcgi_pass group_srv;<br/>
 fastcgi_param SCRIPT_FILENAME $document_root/index.php;<br/>
 include /etc/nginx/fastcgi_params;<br/>
 fastcgi_param SCRIPT_NAME /index.php;<br/>
 fastcgi_index index.php;<br/>
 if ($do_not_cache != &quot;1&quot;) {<br/>
 add_header Vary Cookie;<br/>
 }<br/>
 }<br/>
<br/>
location / {<br/>
 gzip_static on;<br/>
 try_files $uri $uri/ @default;<br/>
 if (-f $request_filename) {<br/>
 expires max;<br/>
 break;<br/>
 }<br/>
 set $cache_file '';<br/>
 set $cache_uri $request_uri;<br/>
 if ($request_method = POST) {<br/>
 set $cache_uri '';<br/>
 }<br/>
 if ($query_string) {<br/>
 set $cache_uri '';<br/>
 }<br/>
 if ($http_cookie ~* &quot;my_coockie|any_coockie_&quot; ) {<br/>
 set $cache_uri '';<br/>
 }<br/>
 if ($cache_uri ~ ^(.+)$) {<br/>
 set $cache_file /var/www/google/plugins/cache$http_host/$1index.html;<br/>
 }<br/>
 if (-f $document_root$cache_file) {<br/>
 rewrite ^(.*)$ $cache_file break;<br/>
 }<br/>
 if (!-e $request_filename) {<br/>
 rewrite . /index.php last;<br/>
 }<br/>
 }<br/>
}<br/>


И локально и на удалённом сервере запрос принимает php-fpm.

Вот ломаю голову какие есть ограничения для перенаправлений/ссылок в браузерах, ведь адрес для статики получаю верный, а браузер всё-равно игнорирует скачивание по ней. Посвятите, пожалуйста, чего мне ещё не удалось постичь, что посмотреть, что изменить?
  • Вопрос задан
  • 3049 просмотров
Подписаться 5 Оценить 1 комментарий
Решения вопроса 1
@hg_04
если оба сервера внешние то лучше проксируй результаты, так у тебя будет больше контроля.

> но так сатика грузиться только с сервера id=1
естественно у тебя же прописано, что брать всегда с папки root /var/www/google;

>rewrite ^/.*(/statics/.*\.(js|css|png|jpg|gif|jpeg|ico))$ last;
странное правило, что ты хотел ним добиться?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы