Как перенаправить nginx на сервер торнадо с запущенным https

Я использую nginx в качестве основного веб-сервера, но у меня также есть сервер торнадо, работающий по адресу https 127.0.0.1:8888 (та же машина, что и на сервере nginx). Я хотел бы перенаправить трафик на мой сервер торнадо, когда пользователь заходит на http://myserver.com/tornadoapp. У меня есть это до сих пор...

# tornado server
upstream tornadoserver {
        server 127.0.0.1:8888;
}

server {
        listen  80 default_server;
        root    /var/www;
        location /tornadoapp {
                proxy_pass https://tornadoserver;
        }
}

На самом деле он перенаправляет запрос в мое приложение сервера торнадо, но торнадо генерирует эту ошибку...

WARNING:tornado.access:404 GET /tornadoapp (127.0.0.1) 1.75ms

Таким образом, редирект идет в торнадо, но я получаю ошибку, потому что торнадо не имеет обработчика для /tornadoapp, У него есть обработчики для /, /login, а также /userи т. д. Я надеялся использовать http://myserver.com/tornadoapp в качестве "псевдонима" или маски, чтобы URL выглядел безболезненно для конечного пользователя (без номеров портов), таким образом...

# When this is typed
http://myserver.com/tornadoapp/login

# they are directed here...
https://localhost:8888/login  

без URL, показывающего номер порта. Есть ли способ сделать это? Я просмотрел несколько примеров в Интернете, но большинство, похоже, имеют дело с перенаправлениями https на другие домены или использованием / как местоположение в блоке сервера. Кажется, никто из них не решает эту проблему. Если это невозможно или я не подходил, пожалуйста, дайте мне знать. Я довольно новичок в nginx, поэтому любая помощь будет оценена. Спасибо!

1 ответ

Добавить трейлинг / на ваш proxy_pass линия, так это выглядит так:

proxy_pass https://tornadoserver/;

Это должно привести к тому, что nginx удалит часть URI для определения местоположения (в вашем случае /tornadoappПеред тем как передать его торнадо.

Также см. Документацию: http://nginx.org/en/docs/http/ngx_http_proxy_module.html

Другие вопросы по тегам