Помогите подружить nginx с Apache

M2
На сайте с 11.01.2011
Offline
341
1051

Понимаю, что тема избитая, но сам понять ничего не могу. Итак...

Есть некий сервер


server {
listen 80 default_server;

#root /usr/share/nginx/html;
#index index.html index.htm;

# Make site accessible from http://localhost/
server_name localhost;

в котором прописан некий алиас:


location /phpmyadmin/ {
root /usr/share/;
index index.php;
allow all;
satisfy any;
}

и ещё есть инструкция, которая предписывает апачу обрабатывать динамику:


location ~ \.php$ {
proxy_pass http://127.0.0.1:79;
proxy_set_header Header $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect off;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 120;
}

и, соответственно, статика - для nginx:


location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
root /usr/share/;
}

что в итоге?


curl -I http://IP сервера/phpmyadmin/index.php | grep ^Server

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
Server: nginx/1.4.6 (Ubuntu)

Помогите понять, почему до апача (судя по курлу) запрос не доходит?

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

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
Andreyka
На сайте с 19.02.2005
Offline
822
#1

Кто вас научил так проверять? Плюньте ему в глаза.

http://web-sniffer.net/ наше все

Не стоит плодить сущности без необходимости
Оптимизайка
На сайте с 11.03.2012
Offline
396
#2

вы не "судя по курлу", вы в логи nginx и в логи апача во время запроса загляните.

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
M2
На сайте с 11.01.2011
Offline
341
#3

Я смотрел по тому ресурсу, который прислал Andreyka - запрос обрабатывает nginx.

M2
На сайте с 11.01.2011
Offline
341
#4

Всё, подружились :) вижу по выводу phpinfo(). А сниффер выводил сервер nginx, т.к. тип был text/html - кому ж его обрабатывать, правильно.... а phpinfo пишет конкретный сервер, который обработал данный запрос.

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#5
Andreyka:
http://web-sniffer.net/ наше все

Нашё всё?

502 Bad Gateway

nginx

Уж лучше и стабильнее: http://www.bertal.ru/

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
TimeBlogger
На сайте с 30.07.2008
Offline
86
#6

Не стал открывать новую тему, т.к. эта относительно схожа.

Есть пхп-скрипт, который при своей работе создает несколько процессов, отрабатывающих задачу. Без нгинкс все отлично, ла в пределах нормы, скрипт не стопается.

Но надо было поставить нгинкс. После этого, скрипт начал останавливаться минут через 5, а в логах стало появляться сообщение про таймаут. Добавил proxy_read_timeout, proxy_send_timeout и еще парочку других параметров. Лимиты по таймаутам выставил 600s. При 300s скрипт останавливался через час приблизительно. Но как известно, чем больше таймаут, тем больше нагрузка на сервер. Соответственно, la стал зашкаливать (>50).

Хотелось бы узнать, есть ли возможность задать исключение для данного скрипта в нгинкс? То есть, чтобы миновал сам нгинкс. Скрипт запускается кроном - wget url.

Или если я перенастрою запуск на php url.php, то это может помочь обойти нгинкс?

A
На сайте с 19.07.2010
Offline
130
#7

По моим наблюдениям, тяжелые или долгоиграющие скрипты лучше запускать напрямую, т.е. php script.php

Если нужно управление через веб, то делается простенький скрипт, который при обращению к нему создает файлик "run.flag" и больше он ничего не делает.

Основной скрипт ставим в cron, например раз в минуту(или в 5 минут), при запуске проверяем наличие файла "run.flag" - если нет файла, то просто выход. Если есть флаг, то проверяем не запущен ли уже основной скрипт(ну или считаем количество запущенных копий, если допускается многократный запуск скрипта), если все ок, то удаляем флаг и запускаемся..

Если через веб нужно передавать параметры для запуска, то как-то так:


@file_put_contents("run.flag", serialize($_REQUEST) );

В основном скрипте читаем параметры из файла "run.flag".

.............

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий