Как сделать сервер Jetty (ring.adapter.jetty) доступным с внешних хостов - PullRequest
1 голос
/ 09 июля 2011

Я пытаюсь запустить веб-сервер, используя следующий вызов

(run-jetty # 'handler {: host "hostname": port 8080})

Это запускает серверкоторый я могу получить доступ с того же хоста, но не внешне.Я делаю это на экземпляре EC2, и я использую внутренний IP-адрес этой машины в качестве «имени хоста», порт 8080 открыт для внешнего доступа.Я также пытался использовать «0.0.0.0» в качестве имени хоста, но это привело к тому же самому поведению.

Я использую слегка устаревшую версию адаптера ring-jetty (0.2.5), но я могу 't изменить это.

Любая помощь очень ценится!

Ответы [ 3 ]

2 голосов
/ 09 июля 2011

Только не указывайте параметр :host;В этом случае, похоже, Jetty прослушивает все интерфейсы.Например, я помогаю с 4clojure .Веб-сервер действительно работает на порте 8080 сервера raynes.me, при этом с помощью некоторого волшебства nginx перенаправляется на порт 80, если HTTP-запросы хоста - 4clojure.com.Вы можете получить к нему прямой доступ, если хотите: http://raynes.me:8080 работает нормально, и вот наш звонок на причале:

(run-jetty (var app) {:join? false :port 8080})
2 голосов
/ 09 июля 2011

чтобы получить доступ и сохранить его в тайне, вы можете запустить

ssh -L 8080: локальный хост: 8080 your.ec2.instance

, затем откройте браузер для http://localhost:8080/myapp/

для вашего оригинального вопроса: возможно, может помочь использование внешнего ip или имени хоста в качестве "hostname"?

0 голосов
/ 10 июля 2011

Спасибо за ваши ответы, ребята, оказалось, что это не было проблемой с Jetty, я выполнял это на EC2 и применял права доступа к порту для другой группы безопасности, чем та, к которой принадлежал данный конкретный экземпляр :)

...