【发布时间】:2012-03-17 08:03:03
【问题描述】:
如何将带有端口的域重写为子域?
e.q.:domain.com:3000 到 sub.domain.com ?
感谢您的帮助! :)
问候
【问题讨论】:
标签: proxy nginx subdomain rewrite
如何将带有端口的域重写为子域?
e.q.:domain.com:3000 到 sub.domain.com ?
感谢您的帮助! :)
问候
【问题讨论】:
标签: proxy nginx subdomain rewrite
您创建一个侦听端口 3000 的 server {} 部分,然后将其重定向到另一个侦听端口 80 的 server {} 部分。在每个 server {} 部分中适当地设置 listen 属性。
我猜您正在尝试在单个 server 部分中处理重定向,并且根据 this page listen 指令适用于 server 上下文
那么您正在寻找的是 proxy_pass 指令。这是从配置中提取的示例配置,我必须使用 nginx 作为我的 rails 应用程序的代理(瘦)。基本上我的应用程序在端口 3200 上本地运行(但它也可以在远程主机上运行),相关的 nginx 配置部分如下所示:
upstream my-app-cluster
{
server localhost:3200;
}
server
{
listen 80;
server_name mydomain.com;
root /root/to/public/folder;
access_log /my/app/log/folder/myapp.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://my-app-cluster;
break;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
【讨论】:
Restarting nginx: nginxnginx: [emerg] bind() to 0.0.0.0:3000 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:3000 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:3000 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:3000 failed (98: Address already in use) nginx: [emerg] still could not bind() My Server Sections pastebin.com/6yacUyDV `
您可以在 nginx 中使用Passenger 来交付Ruby 应用程序——这就是我们目前使用的方法。
【讨论】: