Основные вопросы развертывания: CherryPy в Ubuntu

У меня есть скромное приложение CherryPy / SQLite в разработке. Я хотел бы поместить его на сервер в облаке для тестирования клиентов. С этой целью я развернул небольшой экземпляр Ubuntu в Rackspace и выполнил некоторую предварительную установку (setup-tools и CherryPy).

Не будучи администратором или особенно знакомым с Linux, у меня есть несколько довольно простых вопросов о развертывании этого приложения, на которые я не смог ответить с помощью Google:

  1. Я предполагаю, что я должен создать учетную запись пользователя специально для запуска приложения, а не использовать root или любую другую существующую учетную запись?

  2. Я не уверен, где я должен пересадить папки с приложениями. Я предполагаю, что они должны идти в /usr/user-I-создал-вопрос-1/. Это верно?

  3. Я использую сервер CherryPy, который кажется достаточным для моих нужд для этого приложения. Правильный ли подход - запустить приложение в сеансе замазки, а затем завершить сеанс замазки на моем компьютере с Windows?

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

1 ответ

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

Куда ты это положил? Возможно, в подкаталоге домашнего каталога этого пользователя, например "/ home / username / mywebapp".

Возможно, вы захотите запустить "screen" (apt-get установите его, если его там нет), и запустите веб-приложение под этим. Вы можете повторно присоединить с помощью "screen -x" и отсоединить от него с помощью "Control-A COntrol-D". Таким образом, он не умрет, когда вы отключитесь.

Однако я бы запустил его под Apache, поэтому Apache запускает и останавливает приложение. Затем он также запускается под пользователем Apache, что может быть как хорошим, так и плохим, но обычно это хорошо. Как правило, это будет включать:

  • Использование mod_wsgi.
  • Создайте файл в /etc/apache2/conf.d, названный в честь вашего приложения.

Он должен содержать:

WSGIPythonPath /path/to/webapp/root
WSGIScriptAlias /appname /path/to/webapp/root/controller.py
  • В этом случае ваше веб-приложение будет в файле "controller.py". "/ Appname" - это часть URL-адреса, которая обращается к этому приложению, например: http://127.0.0.1/appname
  • Это веб-приложение должно быть приложением WSGI, например, оно должно заканчиваться на:

Пример WSGI:

cfg = config()
cherrypy.config.update()
application = cherrypy.APplication(None, script_name = '/appname', config = cfg)

Главное, что вам нужно создать объект "приложение" в вашем контроллере.

Как только вы это сделаете, вы сможете перезапустить Apache (/etc/init.d/apache2 restart) и затем получить доступ к веб-приложению через этот URL-адрес.

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