2013-07-21 2 views
4

Итак, у меня очень простое развертывание на экземпляре EC2, который работает в основном, за исключением нескольких больших проблем. Сейчас я просто ssh'ing в коробку и работаетЧасто развертывание AWS часто уменьшается

python -m SimpleHTTPServer 80 

и у меня есть ящик на группу безопасности, которая позволяет запросы HTTP в порт 80.

Это похоже на работу, но если Я оставляю это в покое некоторое время (обычно 1-2 часа), мой эластичный ip начнет возвращать 404s. Мне действительно нужен этот сервер, чтобы не участвовать в демонстрациях третьим сторонам. Любые идеи о том, как убедиться, что он остается?

Кроме того, он закрывается, когда я закрываю терминал, который находится в моей коробке, что крайне не идеально, поскольку я хотел бы, чтобы эта демонстрация не спала, даже если мой компьютер выключен. Это менее срочный вопрос, но любые советы по этому вопросу также будут оценены.

+0

Возможно, вам необходимо настроить приложение для запуска в качестве службы с помощью веб-сервера. Вероятно, это работает только в текущем сеансе пользователя. – datasage

+0

@ datasage Есть ли у вас какие-либо ресурсы, чтобы указать мне на пример или пример кода о том, как это сделать? –

+0

@ datasage, если я просто запускаю его как cronjob каждые пару минут, будет иметь тот же эффект? Или здесь много настроек? –

ответ

0

SimpleHTTPServer просто обслуживает статические страницы на порту 80, в основном для использования во время разработки.

Для использования в производстве (если вы хотите использовать EC2), я рекомендую вам ознакомиться с Apache или nginx. В основном вам нужен веб-сервер, который работает в Linux.

Если вы считаете, что ваш сайт останется неподвижным (HTML, CSS, JS), я рекомендую вам разместить их на Amazon S3. S3 дешевле и надежнее.Взгляните на этот ответ для получения инструкций: Static hosting on Amazon S3 - DNS Configuration

Наслаждайтесь!

3

Используйте screen! Вот краткое руководство: http://www.nixtutor.com/linux/introduction-to-gnu-screen/

По существу только SSH в, откройте новое окно с помощью экрана, запустить сервер через python -m SimpleHTTPServer 80, а затем отсоединить от окна. Кроме того, вы должны быть в состоянии закрыть терминал, и он должен оставаться на месте.

+0

Черт возьми, это действительно здорово. Это не совсем решает мою главную проблему здесь, но спасибо, что указали мне на новый класс! –

1

Я был в состоянии решить эту проблему немного взломан, собрав задание cron, чтобы запустить скрипт bash, который развернул сервер, но я не уверен, что это лучший способ. Кажется, я решил свои проблемы в краткосрочной перспективе. Для справки, это код, который я использовал:

import SimpleHTTPServer 
import SocketServer 

PORT = 80 

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler 

httpd = SocketServer.TCPServer(("", PORT), Handler) 

httpd.serve_forever() 

Что я завернутые в простой Баш скрипт:

#!/bin/bash 
cd relevant/directory 
sudo -u ubuntu python simple_server.py 

Я уверен, что было лучше permissioning использовать, но после того, что я просто побежал

chmod -R 777 bash_script.sh 

Чтобы убедиться, что я не столкнулся с какими-либо проблемами на этом фронте.

А затем помещают в cronjob запускать каждую минуту (больше, тем лучше, не так ли?)

crontab -e (Just to bring up the relevant file) 

Добавлено в этой строке:

*/1 * * * * path/to/bash_script.sh 

И это, кажется, работает. Я закрыл свой терминал ssh'd, и все по-прежнему работает, и ничего не осталось. Я буду обновлять, если что-то делает, но я в целом доволен этим решением (не то, что я буду через 2 недели, когда узнаю больше о предмете), но он кажется очень минимальным и низким, что означает, что я хотя бы понимаю, что Я только что сделал.

Смежные вопросы