Неверное значение переменной _SERVER["SERVER_PORT"]

123
N
На сайте с 06.05.2007
Offline
419
#11
При этом если смотреть эту переменную скриптом запущенным из главного домена то значение переменной нужное (порт 80).

Так вы туда и не смотрите скриптом

Проблема то в чем? Что именно не работает на сайте?

Я смотрю в конфиге nginx у вас куча IP. Возможно, один из доменов повешен на IP, для которого nginx не работает, а работает чистый апач. Учитывая что вы попрятали все ip, точно ничего не скажешь.

Кнопка вызова админа ()
S
На сайте с 19.11.2007
Offline
64
#12
netwind:
Так вы туда и не смотрите скриптом
Проблема то в чем? Что именно не работает на сайте?

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

netwind:

Я смотрю в конфиге nginx у вас куча IP. Возможно, один из доменов повешен на IP, для которого nginx не работает, а работает чистый апач. Учитывая что вы попрятали все ip, точно ничего не скажешь.

Это проверю, отпишусь по результатам

spamers добавил 03.05.2010 в 16:06

netwind:
Возможно, один из доменов повешен на IP, для которого nginx не работает, а работает чистый апач.

Проверил, на субдомене и домене один и тот же IP.

netwind:
Учитывая что вы попрятали все ip, точно ничего не скажешь.

Подсеть класса D видна, это позволяет различть различные ip.

N
На сайте с 06.05.2007
Offline
419
#13

Ну почему опять неверное значение? Оно верное.точно такое какое там у вас установлено в конфиге апача.

Если уж сильно нужно чтобы 80 порт был в апаче - попробуйте завернуть входящие соединения на 80 порт на nginx на ДРУГОМ порту, а там уже proxy_pass на 80 порт к апачу. То, что вы описываете - ситуация очень частая для nginx и производитель скрипта мог бы уже предусмотреть.

S
На сайте с 19.11.2007
Offline
64
#14
netwind:
Ну почему опять неверное значение? Оно верное.точно такое какое там у вас установлено в конфиге апача.
Если уж сильно нужно чтобы 80 порт был в апаче - попробуйте через iptables завернуть входящие соединения на 80 порт на nginx на ДРУГОМ порту, а там уже proxy_pass на 80 порт к апачу.

Нет, мне всеравно какой порт, проблема в том что 81 порт не работает, т.е. если обратиться к урлу htt://сайт.ру:81 то ничего не откроется, посколько это порт бекенда, смена его на другое значение нчего не даст, посколько он всеравно будет портом бекенда а следовательно не работать для фронтенда.

Тут нужно понять почему переменная сервер порт для субдменов отдается 81 а для доменов 80

N
На сайте с 06.05.2007
Offline
419
#15

А вы настройте чтобы работал и 81 порт тоже.

S
На сайте с 19.11.2007
Offline
64
#16
netwind:
А вы настройте чтобы работал и 81 порт тоже.

Тогда запроосы к нему будут идти сразу на апач, минуя ngnix, что делает бессмсленой это связку и поднимет нагрузку на сервер.

M
На сайте с 16.09.2009
Offline
278
#17
spamers:
Тогда куда копать, в чем на Ваш взгляд может быть причина неверного значения переменной SERVER_PORT на субдоменах?

Ну, блин - сравните виртуалхосты (в конфигурации апача), которые настроены для домена и субдоменов на порту 81. Куда nginx запросы проксирует.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
N
На сайте с 06.05.2007
Offline
419
#18

spamers, ну, видимо, это какой-то интерфейс сайта внутренний. они же не все туда пойдут.

S
На сайте с 19.11.2007
Offline
64
#19
myhand:
Ну, блин - сравните виртуалхосты (в конфигурации апача), которые настроены для домена и субдоменов на порту 81. Куда nginx запросы проксирует.

Вот виртуалхосты домена и субдомена, не нашел там ничего что могло бы привести к такой ошибке.

Посмотрите пожалуйста Вы, может я что то упустил.


<VirtualHost *.*.*.122:81>
ServerName domain.ru
ServerAlias www.domain.ru
DocumentRoot /home/domain/public_html
ServerAdmin webmaster@domain.ru
UseCanonicalName Off
CustomLog /usr/local/apache/domlogs/domain.ru combined
CustomLog /usr/local/apache/domlogs/domain.ru-bytes_log "%{%s}t %I .\n%{%s}t %O ."
## User domain # Needed for Cpanel::ApacheConf
<IfModule mod_suphp.c>
suPHP_UserGroup domain domain
</IfModule>
<IfModule concurrent_php.c>
php4_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
php5_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/local/lib/php:/tmp"
</IfModule>
<IfModule !concurrent_php.c>
<IfModule mod_php4.c>
php_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/local/lib/php:/tmp"
</IfModule>
<IfModule sapi_apache2.c>
php_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
</IfModule>
</IfModule>
<IfModule !mod_disable_suexec.c>
SuexecUserGroup domain domain
</IfModule>
ScriptAlias /cgi-bin/ /home/domain/public_html/cgi-bin/


# To customize this VirtualHost use an include file at the following location
# Include "/usr/local/apache/conf/userdata/std/2/domain/domain.ru/*.conf"

</VirtualHost>

<VirtualHost *.*.*.122:81>
ServerName subdomain.domain.ru
ServerAlias www.subdomain.domain.ru
DocumentRoot /home/domain/public_html/subdomain
ServerAdmin webmaster@subdomain.domain.ru
UseCanonicalName On
CustomLog /usr/local/apache/domlogs/subdomain.domain.ru combined
CustomLog /usr/local/apache/domlogs/subdomain.domain.ru-bytes_log "%{%s}t %I .\n%{%s}t %O ."
## User domain # Needed for Cpanel::ApacheConf
<IfModule mod_suphp.c>
suPHP_UserGroup domain domain
</IfModule>
<IfModule concurrent_php.c>
php4_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
php5_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/local/lib/php:/tmp"
</IfModule>
<IfModule !concurrent_php.c>
<IfModule mod_php4.c>
php_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/local/lib/php:/tmp"
</IfModule>
<IfModule sapi_apache2.c>
php_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
</IfModule>
</IfModule>
<IfModule !mod_disable_suexec.c>
SuexecUserGroup domain domain
</IfModule>
ScriptAlias /cgi-bin/ /home/domain/public_html/subdomain/cgi-bin/


# To customize this VirtualHost use an include file at the following location
# Include "/usr/local/apache/conf/userdata/std/2/domain/subdomain.domain.ru/*.conf"

</VirtualHost>
N
На сайте с 06.05.2007
Offline
419
#20

spamers, ну все логично, раз прописали в конфиге поддомена 81 порт, он в переменной и появился. Конфиг основного домена на 80 порту так я и не видел.

Вы или полностью все конфиги выкладывайте - apache , nginx, файервол (pf,или что там у вас)).

Или человека нанимайте который будет на месте смотреть и объяснять вам.

123

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