Назад | Перейти на главную страницу

Установка сервера Yaws на Ubuntu 12.04 (с использованием облачной службы)

Я пытаюсь заставить веб-сервер Yaws работать в облачном сервисе (Amazon AWS). Я скомпилировал и установил локальную копию на сервере. Моя проблема в том, что я не могу запустить Yaws при работе на порте 8000 или 80.

У меня в yaws.conf есть следующая конфигурация:

port = 8000
listen = 0.0.0.0
docroot = /home/ubuntu/yaws/www/test
dir_listings = true

Это дает следующий успешный запуск / результат:

Eshell V5.8.5 (abort with ^G)

=INFO REPORT==== 16-Sep-2012::17:21:06 === Yaws: Using config file /home/ubuntu/yaws.conf

=INFO REPORT==== 16-Sep-2012::17:21:06 === Ctlfile : /home/ubuntu/.yaws/yaws/default/CTL

=INFO REPORT==== 16-Sep-2012::17:21:06 === Yaws: Listening to 0.0.0.0:8000 for <3> virtual servers: - http://domU-12-31-39-0B-1A-F6:8000 under /home/ubuntu/yaws/www/trial -

=INFO REPORT==== 16-Sep-2012::17:21:06 === Yaws: Listening to 0.0.0.0:4443 for <1> virtual servers: -

Когда я пытаюсь получить доступ к URL-адресу (http://ec2-72-44-47-235.compute-1.amazonaws.com), он никогда не подключается. Я пробовал использовать paping, чтобы проверить, открыт ли порт 80 или 8000 (http://code.google.com/p/paping/), и я получаю сообщение об ошибке «Хост не может быть разрешен», так что, очевидно, что-то не работает.

Я также пробовал установить yaws.conf так, чтобы он был на порту 80, как это выглядит:

port = 8000
listen = 0.0.0.0
docroot = /home/ubuntu/yaws/www/test
dir_listings = true

и я получаю следующую ошибку:

=ERROR REPORT==== 16-Sep-2012::17:24:47 === Yaws: Failed to listen 0.0.0.0:80 : {error,eacces}

=ERROR REPORT==== 16-Sep-2012::17:24:47 === Can't listen to socket: {error,eacces}         
=ERROR REPORT==== 16-Sep-2012::17:24:47 === Top proc died, terminate gserv =ERROR REPORT==== 16-Sep-2012::17:24:47 === Top proc died, terminate gserv =INFO REPORT==== 16-Sep-2012::17:24:47 === application: yaws exited: {shutdown,{yaws_app,start,[normal,[]]}} type: permanent {"Kernel pid terminated",application_controller," {application_start_failure,yaws,>>>>>>{shutdown,>{yaws_app,start,[normal,[]]}}}"}

Я также открыл порт 80 с помощью iptables. Запуск sudo iptables -L дает следующий результат:

Chain INPUT (policy ACCEPT) target prot opt source destination
ACCEPT tcp -- ip-192-168-2-0.ec2.internal ip-192-168-2-16.ec2.internal tcp dpt:http      
ACCEPT tcp -- 0.0.0.0 anywhere tcp dpt:http ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:http ACCEPT tcp -- anywhere anywhere tcp dpt:http

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination

Кроме того, я перешел на панель группы безопасности в области конфигурации Amazon AWS и добавил порты 80, 8000 и 8080 в источник IP 0.0.0.0.

Обратите внимание: если вы попытаетесь получить доступ к URL-адресу виртуального сервера сейчас, он, скорее всего, не подключится, потому что я в настоящее время не использую демон yaws. Я тестировал это, когда у меня было рыскание через рыскание или рыскание -i

Спасибо за терпение

Если вы поместите службу на порт 8000, вам необходимо использовать порт 8000 в своем URL-адресе. Например:

http://ec2-72-44-47-235.compute-1.amazonaws.com:8000/

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