Рейтинг:0

Nginx перенаправляет на http://localhost

флаг cz

Краткое изображение ситуации

  • Я не могу использовать доменный адрес для имя сервера потому что я не могу контролировать DNS-сервер. Я должен использовать общедоступный IP-адрес для подключения к моему веб-серверу.
  • Поэтому я установил имя сервера к _;, но когда я запрашиваю http://брандмауэр-публичный-ip:5000 он перенаправляет на http://локальный: 5000.
  • Обычно я могу открывать другие страницы, которые не используют перенаправление. Например, я могу получить доступ http://firewall-public-ip:5000/логин и войти, но затем он перенаправляет на http://локальный:5000/логин потому что страница входа использует перенаправление после входа в систему.

nginx.conf:

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

пользователь nginx;
рабочие_процессы авто;
журнал_ошибок /var/log/nginx/error.log;
pid /run/nginx.pid;

# Загрузить динамические модули. См. /usr/share/doc/nginx/README.dynamic.
включить /usr/share/nginx/modules/*.conf;

События {
    worker_connections 1024;
}

http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$статус $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    журнал_доступа /var/log/nginx/access.log основной;

    отправить файл включен;
    tcp_nopush включен;
    tcp_nodelay включен;
    keepalive_timeout 65;
    типы_хэш_макс_размер 4096;
    proxy_hide_header X-Powered-By;
    proxy_hide_header Сервер;

    включить /etc/nginx/mime.types;
    default_type application/octet-stream;

    # Загрузите файлы модульной конфигурации из каталога /etc/nginx/conf.d.
    # См. http://nginx.org/en/docs/ngx_core_module.html#include
    # для дополнительной информации.
    включить /etc/nginx/conf.d/*.conf;

сервер {
    слушать 5000;

    имя сервера _;
    server_name_in_redirect выключен;
    ssl_протоколы TLSv1.2;

    место расположения '/' {
        proxy_pass http://unix:/var/sockets/gunicorn.sock;
    }
  }
}

Как я могу это исправить? Опять же, я не могу использовать доменный адрес для этого сервера.

* РЕДАКТИРОВАТЬ добавлено перенаправление приложения

@blueprint.route('/')
определение маршрута_по умолчанию():
    вернуть перенаправление (url_for ('authentication_blueprint.login'))


@blueprint.route('/логин', методы=['GET', 'POST'])
деф логин():
    login_form = ЛогинФорма(запрос.форма)
    если "войти" в request.form:

        # прочитать данные формы
        имя пользователя = запрос.форма['имя пользователя']
        пароль = запрос.форма['пароль']

        # Найдите пользователя
        пользователь = Users.query.filter_by(username=username).first()

        # Проверить пароль
        если пользователь и verify_pass(пароль, user.password):

            логин_пользователь (пользователь)
            вернуть перенаправление (url_for ('authentication_blueprint.route_default'))

        # Что-то (пользователь или пароль) не в порядке
        вернуть render_template('accounts/login.html',
                               msg='Неверный пользователь или пароль',
                               форма=логин_форма)

    если не current_user.is_authenticated:
        вернуть render_template('accounts/login.html',
                               форма=логин_форма)
    вернуть перенаправление (url_for ('home_blueprint.index'))

apps.authentication.__init__.py

из фляги импортировать Blueprint

чертеж = чертеж(
    'аутентификация_план',
    __имя__,
    url_prefix=''
)
Рейтинг:1
флаг us

nginx не отправляет никаких перенаправлений с этой конфигурацией.

Перенаправление исходит из вашего приложения, которое является proxy_pass цель. Приложение, скорее всего, имеет настройку «базовый URL», где вам нужно указать свой IP-адрес.

Lunartist avatar
флаг cz
Причина, по которой я спрашивал nginx.conf, заключалась в следующем: https://serverfault.com/questions/186896/nginx-redirecting-to-localhost.
Lunartist avatar
флаг cz
Отредактировал вопрос, чтобы включить перенаправление приложения. Как вы думаете, мне следует повторно открыть вопрос с тегом Flask?
Lunartist avatar
флаг cz
К вашему сведению: сервер открывается нормально, если я не использую Nginx, а просто использую `gunicorn --bind 0.0.0.0:5000 --user bpimanager run:app`.

Ответить или комментировать

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