请问如何在生产服务器(ubuntu 10.04)上启动 Tornado 应用程序并通过域名中没有端口号的域名访问它?
以下是背景信息
我的 Tornado 应用程序的位置: /srv/www/domain1.com/public_html/src 。
src/ 的目录结构为:
src/
static/
templates/
app.py
我打算在我的服务器上托管多个 Tornado 应用程序,因此我将使用/etc/nginx/sites-enable
和/etc/nginx/sites-available
功能。
在我的/etc/nginx/sites-available
文件夹中,我创建了一个domain1.com.conf
文件:
server {
listen 80;
server_name http://www.domain1.com;
root /srv/www/domain1.com/public_html/src/static;
location / {
try_files $uri @tornado;
}
location @tornado {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8888;
}
}
之后,我创建了一个指向 /etc/nginx/sites-enabled 的符号链接。然后我重新启动了 nginx。
我没有改变默认的 nginx 配置文件。
通过运行 python app.py 启动 tornado 应用程序后,我可以访问我的应用程序http://www.domain1.com:8888
如果我输入尝试访问它http://www.domain1.com
,那么我会看到“欢迎使用 Nginx”消息。
有没有办法可以访问我的应用程序http://www.domain1.com/?
此致。
答案1
server_name 选项应包含主机名而不是 URL。使用您的示例:
server_name www.domain1.com;
Tornado 文档包含一个在 nginx 后面运行四个 Tornado 实例的示例:http://www.tornadoweb.org/en/stable/guide/running.html