Domain-Name-System
如何使用萬用字元 DNS 設置 nginx 伺服器
這是一個使用子域的範例 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
在瀏覽器上訪問,Google瀏覽器會顯示未找到的頁面,但會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;
嗎?這可能是您需要的更多。我相信對於伺服器名稱
_;
是一個包羅萬象的。server { listen 80 default_server; server_name _; rewrite ^(.*)$ http://www.domain.tld$1 permanent; }