Конечные точки Spring работают с IP, но не с доменным именем. Как исправить?

У меня есть приложение Spring Boot, развернутое на VPS. Я упаковал его как war и развернул через диспетчер Tomcat ( : / manager / html ).

Он работает, если я получаю доступ к конечным точкам используя IP-адрес VPS, например http: // : / api / login . Однако это не сработает, если я получу доступ к нему по доменному имени, например http://example.com: <порт Tomcat> / api / login . В частности, я получаю (сбой) net :: ERR_CONNECTION_TIMED OUT на вкладке «Сеть» в инструментах разработчика Chrome.

Другими способами я знаю, что домен правильно указывает на IP-адрес VPS. Я поискал и попробовал следующие решения:

Но ничего из этого не сработало.

Я также пробовал решение nginx из связанного вопроса, но мне кажется, что nginx никогда не работал. этот VPS, поскольку он не работает nginx -t с настройкой, которая идет с VPS.

Поскольку у меня есть приложение React, которое также развертывается на этом VPS, я думаю, что использование Tomcat порта 80 не является вариантом.

Поскольку я не нахожу другого решения, что мне делать?

Обновить 1: забыл добавить вывод apachectl -S в соответствии с описанием (анонимный):

[Fri Sep 21 13:42:06.248978 2018] [proxy_html:notice] [pid 29712] AH01425: I18n support in mod_proxy_html requires mod_xml2enc. Without it, non-ASCII characters in proxied pages are likely to display incorrectly.
VirtualHost configuration:
<VPS IP>:8080    example.com (/home/<user>/conf/web/example.com.apache2.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex fcgid-pipe: using_defaults
Mutex watchdog-callback: using_defaults
Mutex proxy-balancer-shm: using_defaults
Mutex rewrite-map: using_defaults
Mutex fcgid-proctbl: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

Обновление 2: приложение React перестало работать . Я последовал совету nginx -t , исправил его, перезапустил, и он снова начал работать. Есть шанс, что я сломал что-то связанное с этим при попытке реализовать обратный прокси, поэтому, вероятно, не обращайте внимания на приведенный выше комментарий о.

Обновление 3: также забыл о попытке изменить фильтр Spring.

0
задан 21 September 2018 в 21:47
2 ответа

В конце концов, мне удалось заставить его работать, но я изменил так много вещей, что не помню, что именно я сделал.

Но я знаю, что это как-то связано с nginx и Apache. В основном, вы оставите Spring как есть и настроите тех, кто получает соединения до весны, чтобы они корректно получали их и перенаправляли туда, где Spring отображена (т.е. localhost).

Я думаю, что это настройка nginx, чтобы заставить ее работать:

/etc/apache2/sites-enabled/domain. com.conf

server {
    server_name  domain.com;

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:<spring_port>;
    }
}

Найдите основной файл nginx с помощью nginx -t, отредактируйте этот файл и добавьте include /etc/apache2/sites-enabled/domain.com.conf в http часть.

.
0
ответ дан 5 December 2019 в 05:16

Первое, что вам нужно сделать, это захватить сетевой трафик на стороне клиента. Вы должны захватывать трафик как для случая, когда он работает, так и для случая, когда он не работает.

Затем сравните два, чтобы узнать, в какой момент они ведут себя по-разному. Вполне вероятно, что они оба не имеют доступа к одному и тому же IP-адресу.

Возможны другие объяснения. Если оба устанавливают соединение с одним и тем же IP-адресом и отправляют запрос, но только один из них получает ответ, может случиться так, что либо серверу требуется больше времени для обработки запроса, либо сервер производит более длительный ответ и вызывает проблему MTU.

0
ответ дан 5 December 2019 в 05:16

Теги

Похожие вопросы