![Fedora Apache/nginx pylons](https://linux22.com/image/509681/Fedora%20Apache%2Fnginx%20pylons.png)
我正在努力理解 Pylons 及其工作原理。到目前为止……它一直很混乱……我正在使用 EC2 和 Fedora8。到目前为止一切正常(即我安装了 Pylons/python 等,在创建测试应用程序并运行 paster serve 后,我可以通过我的域名访问默认页面)。
正如 Pylons 文档所解释的和我所理解的,内置的 Paster Serve 服务器不适合生产环境。那么,我不清楚接下来该怎么做... 似乎 Nginx 是一个不错的选择,但我更熟悉 Apache(比如 0.0002%)。我计划使用虚拟主机(Nginx 表示可以容纳)。但是,我完全不清楚大局应该如何运作。
- 为了提供应用程序服务,是否需要运行 Paster Serve?
- 那么 nginx/apache 基本上只是充当与 paster 服务器连接的代理吗?
- 我该如何启动它以便它在关闭 ssh 连接后不会终止?
- 如果运行多个应用程序,我应该在 development.ini 中将主机/端口设置为什么来区分应用程序?或者,如果这不是正确的方法,我该如何区分应用程序?
- 我更熟悉 MySQL,但如果更合适,我愿意与 PostgreSQL 协商。是吗?
- virtualenv 是在同一台机器上运行多个应用程序的先决条件吗?
提前感谢任何提示。
答案1
apache2/mod_wsgi -> 塔架
或者
nginx/uwsgi (不要使用它们的 mod_wsgi) -> pylons
Virtualenv 将您的依赖项与您自己的沙盒版本的 Python 和已安装的软件包绑定在一起。如果您正在运行多个站点,建议对每个站点使用 virtualenvs。
您可以代理到 paster,但我更喜欢 mod_wsgi。至于 apache2 与 nginx 的争论,nginx 将使用更少的内存并提供更快的静态文件服务。配置 nginx 以处理 mod_rewrite 类型的功能略有不同,但并非不可能。使用 mod_wsgi 或 uwsgi,只要 Web 服务器正在运行,您的应用程序就会在发出请求时启动。您可能会发现从 apache/mod_wsgi 开始并稍后迁移到 nginx 更容易。了解 apache 的人远远多于了解 nginx 的人,并且大多数项目都假设将使用 apache 进行记录。
如果您的 Web 服务器在 ECS 实例启动时启动,则任一 wsgi 方法都会在第一个请求时启动。
运行多个应用程序时,您将拥有单独的 wsgi 配置文件或单独的 .wsgi 脚本。
选择 MySQL 还是 PostreSQL 的哲学争论。SQLAlchemy 在 Pylons 中同时支持这两种语言。