这是一个使用子域的示例 Rails 应用程序。你可以在这里访问它:http ://rodrigora.com.br 。在这个应用程序中,您可以创建站点并为其指定一个子域。
例子:
地点:
子域:
gog
但是,任何子域都无法访问该应用程序,www
.
DNS服务器配置:
nginx服务器配置:
upstream app_server {
server unix:/tmp/unicorn.blog.sock fail_timeout=0;
}
server {
listen 80 default;
#server_name localhost;
client_max_body_size 4G;
keepalive_timeout 10;
root /home/ubuntu/apps/blog/current/public;
try_files $uri/index.html $uri.html $uri @app;
location @app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server;
}
# Rails error pages
error_page 500 502 503 504 /500.html;
location = /500.html {
root /home/ubuntu/apps/blog/current/public;
}
location ~ ^/(assets)/ {
root /home/ubuntu/apps/blog/current/public;
gzip_static on; # to serve pre-gzipped version
expires max;
add_header Cache-Control public;
}
}
额外信息:如果我www.rodrigora.com.br
在浏览器上访问,谷歌浏览器会显示未找到的页面,但会nginx
记录这一行:
186.210.71.46 - - [21/Sep/2013:22:08:37 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36"
问题:
那么,nginx是说
www
子域不存在?如何配置此应用程序以响应任何子域?
资源:
放置服务器名称,因为
*.rodrigora.com.br
这将让 nginx 服务器接受具有此域潜艇之一的任何请求。你试过
listen 80 default_server;
吗?这可能是您需要的更多。我相信对于服务器名称
_;
是一个包罗万象的。