2014-04-10 27 views
0

雖然這些文件在開發過程中以及在本地計算機上進行生產時都處於開發階段,但這些文件不在現場生產中投放。我收到一個404找不到的錯誤。其他一切工作正常。這些文件存在於應用程序(-approot- /公衆)的公共目錄未在生產環境中投放我的robots.txt和sitemap.xml.gz的Rails

我使用nginxunicorn在直播服務器。我nginx/sites-available/default文件:

upstream example.com { 
server unix:/tmp/example.socket fail_timeout=0; 
} 

server { 
    listen 80 default; 
    server_name example.com www.example.com; 
    root /home/myuser/apps/example/current/public; 
    access_log /var/log/nginx/access.log; 
    rewrite_log on; 

    location/{ 
    proxy_pass http://example.com; 
    proxy_redirect  off; 
    proxy_set_header Host    $host; 
    proxy_set_header X-Real-IP  $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

    client_max_body_size  10m; 
    client_body_buffer_size 128k; 

    proxy_connect_timeout  90; 
    proxy_send_timeout   90; 
    proxy_read_timeout   90; 

    proxy_buffer_size   4k; 
    proxy_buffers    4 32k; 
    proxy_busy_buffers_size 64k; 
    proxy_temp_file_write_size 64k; 
    } 

    location ~ ^/(images|javascripts|stylesheets|assets|system)/ { 
    root /home/myuser/apps/example/current/public; 
    expires max; 
    break; 
    } 

} 

回答

2

你寫這樣

server { 
    listen 80 default; 
    server_name example.com www.example.com; 
    root /home/myuser/apps/example/current/public; 
access_log /var/log/nginx/access.log; 
rewrite_log on; 

location/{ 
proxy_pass http://example.com; 
proxy_redirect  off; 
proxy_set_header Host    $host; 
proxy_set_header X-Real-IP  $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

client_max_body_size  10m; 
client_body_buffer_size 128k; 

proxy_connect_timeout  90; 
proxy_send_timeout   90; 
proxy_read_timeout   90; 

proxy_buffer_size   4k; 
proxy_buffers    4 32k; 
proxy_busy_buffers_size 64k; 
proxy_temp_file_write_size 64k; 
} 

location ~ ^/(images|javascripts|stylesheets|assets|system)/ { 
root /home/myuser/apps/example/current/public; 
expires max; 
break; 
} 
location ~ ^/(robots.txt|sitemap.xml.gz)/ { 
root /home/myuser/apps/example/current/public; 

} 

} 
+1

這對我不起作用,我不得不做'location〜^ /。+ \。(gz | txt)$ {}'。 –

0

追加這etc/nginx/sites-available/default

location ~ ^/(robots.txt|sitemap.xml.gz) { 
    root /home/<user>/apps/<appname>/current/public; 
} 
+1

這對我沒有用,我不得不做'location〜^ /。+ \。(gz | txt)$ {}'。 –

0

多了一個位置規則追加這等/ nginx的/網站可用/ {您-app-config-file}:

location ~ .*(robots.txt|sitemap.xml.gz) { 
    # if you already set root above, then the following line is not needed. 
    root /path_to_app/public; 
}