Основные вопросы развертывания: CherryPy в Ubuntu
У меня есть скромное приложение CherryPy / SQLite в разработке. Я хотел бы поместить его на сервер в облаке для тестирования клиентов. С этой целью я развернул небольшой экземпляр Ubuntu в Rackspace и выполнил некоторую предварительную установку (setup-tools и CherryPy).
Не будучи администратором или особенно знакомым с Linux, у меня есть несколько довольно простых вопросов о развертывании этого приложения, на которые я не смог ответить с помощью Google:
Я предполагаю, что я должен создать учетную запись пользователя специально для запуска приложения, а не использовать root или любую другую существующую учетную запись?
Я не уверен, где я должен пересадить папки с приложениями. Я предполагаю, что они должны идти в /usr/user-I-создал-вопрос-1/. Это верно?
Я использую сервер CherryPy, который кажется достаточным для моих нужд для этого приложения. Правильный ли подход - запустить приложение в сеансе замазки, а затем завершить сеанс замазки на моем компьютере с Windows?
Помимо посещения самого сайта, какие существуют инструменты или методы для мониторинга времени безотказной работы или для того, чтобы узнать, стал ли сервер недоступным?
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-адрес.