Краткое изображение ситуации
- Я не могу использовать доменный адрес для
имя сервера
потому что я не могу контролировать 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=''
)