Nginx
とRoR Webサーバー(Unicorn
,またはWEBrick
など)で自分のローカルコンピュータにRuby on Railsアプリケーションを展開したいと考えています。なぜ私はサブドメインにアクセスできないのですか?
以下に示すように、私はpost
サブドメインで私のWebアプリへのアクセスをしたい:
upstream sub {
server unix:/tmp/unicorn.subdomain.sock fail_timeout=0;
# server 127.0.0.1:3000;
}
server {
listen 80;
server_name post.subdomain.me;
access_log /var/www/subdomain/log/access.log;
error_log /var/www/subdomain/log/error.log;
root /var/www/subdomain;
index index.html;
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;
try_files /system/maintenance.html $uri $uri/index.html $uri.html @ruby;
}
location @ruby {
proxy_pass http://sub;
}
}
すべてが正常に動作していると私はpost.subdomain.me
を入力するとき、私は私のRoRのアプリを見ることができます。
問題:私はpost.subdomain.me
URLを使用する場合、私は(request.subdomain
戻り空とrequest.host
リターンsubdomain.me
のsubdomain
instaed)私のサブドメインにアクセスすることはできません。しかし、私がpost.subdomain.me:3000
を使用すると、すべてのものが完璧に機能します(私はそれを実現するために私の髪の毛の半分を失った)。なぜ、どのように解決できますか?
HTTPサーバーには何を使用していますか?あなたはUnicorn、Thin、Webrickに言及しましたが、あなたが試したものは何も言いませんでした。 –
@TomL:それらのすべてで、私は同じ問題を抱えています。 –
あなたの 'proxy_xxx'ディレクティブのすべてが間違った' location'ブロックにあります。 'location @ ruby'ブロックの' proxy_pass'ディレクティブでそれらを保持する必要があります。そうでなければ、それらは無視されます。 –