2011-11-17 13 views
7

Tôi đã thiết lập của tôi lên để chạy trên nginx và kỳ lân như mô tả trong tập Railscasts # 293.Rails chuyển hướng thất bại trên nginx & unicorn thiết lập

Khi tôi cố gắng chuyển hướng, chẳng hạn như

class PostsController < ApplicationController 
    def show 
    redirect_to posts_path, :notice => "Test redirect" 
    end 
end 

tôi được chuyển đến http://unicorn/posts thay vì http://mydomain.com/posts

Dưới đây là nginx.conf của tôi cho các ứng dụng

upstream unicorn { 
    server unix:/tmp/unicorn.scvrush.sock fail_timeout=0; 
} 

server { 
    listen 80 default deferred; 
    # server_name example.com; 
    root /var/apps/current/public; 

    try_files $uri/index.html $uri @unicorn; 

    location @unicorn { 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 
    proxy_pass http://unicorn; 
    } 

    keepalive_timeout 5; 
} 
+0

Tôi có một thiết lập tương tự, nhưng thay vì 'vị trí @ unicorn' Tôi có' địa điểm/'. Bạn đã thử chưa – Frost

+0

@MartinFrost Yep, không giúp được gì. Dường như với tôi rằng nó sử dụng URL proxy_pass làm URL cơ sở, thay vì tên miền. –

+0

bạn cũng có thể đăng nội dung './Config/unicorn.rb' của mình không? ví dụ. dòng có chỉ thị 'listen'. – Tilo

Trả lời

5

này làm việc cho tôi :

upstream unicorn { 
    server unix:/tmp/unicorn.example.sock fail_timeout=0; 
} 

server { 
    listen  80; 
    listen  localhost; 
    server_name www.example.com; 
    keepalive_timeout 5; 

    location/{ 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    # this is required for HTTPS:                                                            
    # proxy_set_header X-Forwarded-Proto https; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 
    proxy_pass http://unicorn; 
    } 

} 

và trong tập tin ./config/unicorn.rb tôi:

# Listen on a Unix data socket                                                                     
listen "/tmp/unicorn.example.sock", :backlog => 64