Nginx вместе с haproxy не указывает на корневой файл index.php

У меня есть 1 местный HAProxy сервер (10.10.1.18), который используется для loadbalance 2 локальных веб-серверов nginx (web1= 10.10.1.21,web2= 10.10.1.22).

Я могу успешно подключиться к локальным ips веб-серверов к файлу index.php http://10.10.1.21/ а также http://10.10.1.22/

Однако когда я указываю локальный ip haproxy http://10.10.1.18/, это только приносит index.html файл вместо index.php файл. У нас также есть доменное имя, которое указывает публичный ip на haproxy, но http://example.uni.edu снова приносит файл index.html, а не файл index.php

Так что я не думаю, что это общедоступный или локальный ip, а скорее конфигурация haproxy или nginx

/etc/haproxy/haproxy.cfg


# ------------------------------------------------- --------------------
# Пример конфигурации для возможного веб-приложения. Увидеть
# полная настройка параметров онлайн.
#
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
# ------------------------------------------------- --------------------

# ------------------------------------------------- --------------------
# Глобальные настройки
# ------------------------------------------------- --------------------
Глобальный
# чтобы эти сообщения попали в /var/log/haproxy.log, вы будете
# нужно:
#
# 1) настроить системный журнал для приема событий сетевого журнала. Готово
# добавив опцию '-r' к SYSLOGD_OPTIONS в
# / etc / sysconfig / syslog
#
# 2) настроить события local2 для перехода на /var/log/haproxy.log
#   файл. Строка, подобная следующей, может быть добавлена ​​к
# / etc / sysconfig / syslog
#
# local2. * /var/log/haproxy.log
#
log 127.0.0.1 local2

chroot / var / lib / haproxy
pidfile /var/run/haproxy.pid
максконн 10000
пользователь haproxy
группа haproxy
демон

# включить стат Unix сокет
сокет статистики / var / lib / haproxy / stats

# ------------------------------------------------- --------------------
# общие значения по умолчанию, что все секции 'listen' и 'backend' будут
#use, если не указано в их блоке
# ------------------------------------------------- --------------------
по умолчанию
режим http
журнал глобальный
вариант httplog
вариант не может
опция http-server-close
опция forwardfor кроме 127.0.0.0/8
опция повторная отправка
повторяет 3
тайм-аут http-запроса 10с
время ожидания 1м
тайм-аут подключения 10с
тайм-аут клиента 1м
тайм-аут сервера 1м
тайм-аут http-keep-alive 10с
проверка тайм-аута 10с
максконн 10000


# ------------------------------------------------- --------------------
#HAProxy статистика бэкэнд
# ------------------------------------------------- --------------------
прослушать haproxy3-мониторинг *: 80
режим http
опция forwardfor кроме 127.0.0.1
вариант httpclose
статистика включена
статистика шоу-легенд
обновление статистики 5с
статистика URI / статистика
статистика царства Haproxy \ Статистика
stats auth username: пароль
статистика админ если ИСТИНА

# ------------------------------------------------- --------------------
# главный интерфейс, который прокси к бэкэндам
# ------------------------------------------------- --------------------
главный интерфейс
связать *: 80
default_backend webapp-main

# круговой баланс между различными бэкэндами
# ------------------------------------------------- --------------------
backend webapp-main
баланс раундробин
опция httpchk HEAD / HTTP / 1.1 \ r \ nHost: \ example.uni.edu
сервер web1 10.10.1.21:80 проверка
сервер web2 10.10.1.22:80 проверка

web1 nginx — /etc/nginx/conf.d/default.conf


сервер {
слушать 80;
имя_сервера 10.10.1.21;


# обратите внимание, что эти строки изначально из блока "location /"
root / usr / share / nginx / html;
index index.php index.html index.htm;

место нахождения / {
try_files $ uri $ uri / = 404;


}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root / usr / share / nginx / html;
}


location ~ [^ /] \. php (/ | $) {
fastcgi_split_path_info ^ (. + \. php) (/.+) $;
fastcgi_index index.php;
fastcgi_pass unix: /var/run/php-fpm/php-fpm.sock;
включить fastcgi_params;
fastcgi_param PATH_INFO $ fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
}

местоположение / dataroot / {
внутренний;
псевдоним / var / moodledata /; # убедитесь, что путь заканчивается на /
}

location / cachedir / {
внутренний;
псевдоним / var / moodledata / cache /; # убедитесь, что путь заканчивается на /
}


location / localcachedir / {
внутренний;
псевдоним / var / moodledata / localcache /; # убедитесь, что путь заканчивается на /
}

location / tempdir / {
внутренний;
псевдоним / var / moodledata / temp /; # убедитесь, что путь заканчивается на /
}

location / filedir / {
внутренний;
псевдоним / var / moodledata / filedir /; # убедитесь, что путь заканчивается на /
}

}

У web2 те же конфиги, что и у web1, и собственный локальный ip.

Когда я указываю прямо на index.php http://10.10.1.18/index.php он загружает файл index.php и дает

сервис 503 недоступен

У кого-нибудь есть подобные проблемы с опытом?

1

Решение

Наконец, это сработало, пожалуйста, выполните следующие действия:

  • не используйте конфигурационные файлы в /etc/nginx/conf.d/ используйте только 1 конфигурационный файл /etc/nginx/nginx.conf, как это



# Для получения дополнительной информации о конфигурации см .:
# * Официальная документация на английском языке: http://nginx.org/en/docs/
# * Официальная русская документация: http://nginx.org/ru/docs/

пользователь nginx;
рабочий_процессы авто;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

События {
работники_соединения 8192;
}

http {
log_format main '$ remote_addr - $ remote_user [$ time_local] "$ request"'
'$ status $ body_bytes_sent "$ http_referer"'
'"$ http_user_agent" "$ http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;
tcp_nopush on;
sendfile on;
keepalive_timeout 65;
types_hash_max_size 2048;

client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 512m;
large_client_header_buffers 2 1k;

client_body_timeout 1200;
client_header_timeout 1200;
send_timeout 100;

include /etc/nginx/mime.types;
default_type application / octet-stream;

сервер {
слушать 80;
имя_сервера example.uni.edu;

# обратите внимание, что эти строки изначально из блока "location /"
root / usr / share / nginx / html;
index index.php index.html index.htm;

место нахождения / {
root / usr / share / nginx / html;
try_files $ uri $ uri / = 404;
index index.php;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root / usr / share / nginx / html;
}

location ~ [^ /] \. php (/ | $) {
root / usr / share / nginx / html;
fastcgi_split_path_info ^ (. + \. php) (/.+) $;
fastcgi_index index.php;
fastcgi_pass unix: /var/run/php-fpm/php-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
включить fastcgi_params;
fastcgi_param PATH_INFO $ fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
}

###################### Для приложения Moodle ##################
местоположение / dataroot / {
внутренний;
псевдоним / var / moodledata /; # убедитесь, что путь заканчивается на /
}

location / cachedir / {
внутренний;
псевдоним / var / moodledata / cache /; # убедитесь, что путь заканчивается на /
}


location / localcachedir / {
внутренний;
псевдоним / var / moodledata / localcache /; # убедитесь, что путь заканчивается на /
}

location / tempdir / {
внутренний;
псевдоним / var / moodledata / temp /; # убедитесь, что путь заканчивается на /
}

location / filedir / {
внутренний;
псевдоним / var / moodledata / filedir /; # убедитесь, что путь заканчивается на /
}
###################### Для приложения Moodle ##################
}
}

  • Убедитесь, что вы используете действительный конфиг haproxy вместе с 2-мя разными портами, 80 — для бэкенда, а 8080 — для мониторинга статистики.

# ------------------------------------------------- --------------------
# Пример конфигурации для возможного веб-приложения. Увидеть
# полная настройка параметров онлайн.
#
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
# ------------------------------------------------- --------------------

# ------------------------------------------------- --------------------
# Глобальные настройки
# ------------------------------------------------- --------------------
Глобальный
# чтобы эти сообщения попали в /var/log/haproxy.log, вы будете
# нужно:
#
# 1) настроить системный журнал для приема событий сетевого журнала. Готово
# добавив опцию '-r' к SYSLOGD_OPTIONS в
# / etc / sysconfig / syslog
#
# 2) настроить события local2 для перехода на /var/log/haproxy.log
#   файл. Строка, подобная следующей, может быть добавлена ​​к
# / etc / sysconfig / syslog
#
# local2. * /var/log/haproxy.log
#
log 127.0.0.1 local2

chroot / var / lib / haproxy
pidfile /var/run/haproxy.pid
максконн 10000
пользователь haproxy
группа haproxy
демон

# включить стат Unix сокет
сокет статистики / var / lib / haproxy / stats

# ------------------------------------------------- --------------------
# общие значения по умолчанию, что все секции 'listen' и 'backend' будут
#use, если не указано в их блоке
# ------------------------------------------------- --------------------
по умолчанию
режим http
журнал глобальный
вариант httplog
вариант не может
опция http-server-close
опция forwardfor кроме 127.0.0.0/8
опция повторная отправка
повторяет 3
тайм-аут http-запроса 10с
время ожидания 1м
тайм-аут подключения 10с
тайм-аут клиента 1м
тайм-аут сервера 1м
тайм-аут http-keep-alive 10с
проверка тайм-аута 10с
максконн 10000


# ------------------------------------------------- --------------------
#HAProxy статистика бэкэнд
# ------------------------------------------------- --------------------
прослушивать haproxy3-мониторинг *: 8080
режим http
опция forwardfor
вариант httpclose
статистика включена
статистика шоу-легенд
обновление статистики 5с
статистика URI / статистика
статистика царства Haproxy \ Статистика
stats auth username: пароль
статистика админ если ИСТИНА

# ------------------------------------------------- --------------------
# главный интерфейс, который прокси к бэкэндам
# ------------------------------------------------- --------------------
главный интерфейс
связать *: 80
опция http-server-close
опция forwardfor
default_backend webapp-main

# круговой баланс между различными бэкэндами
# ------------------------------------------------- --------------------
backend webapp-main
источник баланса
опция httpchk HEAD / HTTP / 1.1 \ r \ nHost: \ example.uni.edu
сервер web1 10.10.1.21:80 проверка
сервер web2 10.10.1.22:80 проверка

Вы также можете просмотреть свое приложение http://example.uni.edu

Примечание: Убедитесь, что вы публично указываете ip на ваш haproxy сервер!

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]