1

Тема: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

Здравствуйте.

Решил перейти с Apache на Nginx. Вроде всё нормально, но есть Две проблемы.

Проблема первая: При авторизации просит подтвердить маркер доступа:

http://storage3.static.itmages.ru/i/16/0105/s_1452003550_8464538_0961dedd23.jpg

При подтверждении, стучится на адрес:

https://sitename:80/login.php

И конечно же вываливается с ошибкой:

http://storage2.static.itmages.ru/i/16/0105/s_1452003549_2497200_30809bb246.jpg

На Apache такой проблемы не было. Пока полностью настроил на HTTPS. Но мне просто интересно, почему возникла эта проблема?

Проблема вторая: В теме есть 3 страницы, при переходе на 2 страницу получаю ошибку:

502 Bad Gateway

А при переходе на 3 страницу, всё нормально. Подскажите, как решить эту проблему?

Сайт nihi1ist

Поделиться

2

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

nihi1ist, URL scheme = Default?

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

3

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

Visman, да, я этот параметр вообще не трогал.

Сайт nihi1ist

Поделиться

4

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

Народ, поделитесь пожалуйста конфигурацией на Nginx.

Сайт nihi1ist

Поделиться

5

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

nihi1ist, раз вы схему не меняли, то проблем быть не должно, так как при Default схеме чпу не используется и настраивать там ни чего не надо.

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

6

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

Visman, хорошо, пусть так, но помогите настроить без https. Точнее, чтобы https работал только при авторизации.

Сайт nihi1ist

Поделиться

7

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

nihi1ist, с этим

https://sitename:80/login.php

если на главной в админке зайти в Show info, то что пишет в

_SERVER["SERVER_PORT"]
_SERVER["HTTPS"]

?

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

8

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

Visman, как я уже писал, в данный момент настроено на https. Но https тоже работает некорректно. Т.е. при попытке отправить сообщение, получаю ошибку 502.

А по поводу запрашиваемых вами данных:

_SERVER["SERVER_PORT"]    443
_SERVER["HTTPS"]    on

Сайт nihi1ist

Поделиться

9

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

_SERVER["SERVER_PORT"]    443
_SERVER["HTTPS"]    on

Тогда вообще не понятно от куда берется 80 порт тут

https://sitename:80/login.php
Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

10

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

Visman, это было когда я ещё не настраивал ssl.

Добавлено спустя 57 минут 6 секунд:

В общем, не знаю в чем проблема, но при авторизации punbb решает использовать https, но через 80 порт. Можно настроит конфиг так, чтобы при работе с https использовался 443 порт.

Сайт nihi1ist

Поделиться

11

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

Вторую проблему решил, осталось решить первую.

Сайт nihi1ist

Поделиться

12

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

Может кому будет полезно, при связке nginx ssl + apache и проблеме маркера доступа при авторизации  надо доавить в конфиге

$_SERVER['HTTPS'] = 'on';
$_SERVER['SERVER_PORT'] = '443';

$base_url = 'https://адрес_форума';

Источник проблемы функция get_current_url

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

13

Re: Переход с Apache 2.4 на Nginx 1.8. Проблемы с авторизацией.

Собственно вот сама функция:

// Try to determine the current URL
function get_current_url($max_length = 0)
{
    $return = ($hook = get_hook('fn_get_current_url_start')) ? eval($hook) : null;
    if ($return != null)
        return $return;

    $protocol = (!isset($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) == 'off') ? 'http://' : 'https://';
    $port = (isset($_SERVER['SERVER_PORT']) && (($_SERVER['SERVER_PORT'] != '80' && $protocol == 'http://') || ($_SERVER['SERVER_PORT'] != '443' && $protocol == 'https://')) && strpos($_SERVER['HTTP_HOST'], ':') === false) ? ':'.$_SERVER['SERVER_PORT'] : '';

    $url = $protocol.$_SERVER['HTTP_HOST'].$port.$_SERVER['REQUEST_URI'];

    if (strlen($url) <= $max_length || $max_length == 0)
        return $url;

    // We can't find a short enough url
    return null;
}

Товарищи программисты, как по вашему было бы правильно ее написать?

Новые стили и расширения на  PunBB.INFO

Поделиться