2014-04-10 28 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; 
}