Reputation: 6660
I work on a virtual machine in Debian 6. I have nginx in front to serve statics files ('jpg,png,css,js...) and apache to run script.
But i have a problem, My assets files make a 404 error.
My nginx configuration :
server {
listen 80;
server_name mysite ;
#access_log /var/log/nginx/access.mysite.log;
#error_log /var/log/nginx/error.mysite.log;
# Les requêtes sont transmises au processus Apache écoutant en local sur le port 81
location / {
proxy_pass http://127.0.0.1:81/;
include /etc/nginx/proxy.conf;
}
# On remap sur la racine du domaine
if ($host != "mysite"){
rewrite ^(.*)$ http://mysite$1 permanent;
break;
}
# On distribue les fichiers statiques directement
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|txt|srt|swf)$ {
root /home/php/mysite/public;
#access_log /var/log/nginx/access.mysite.log;
#error_log /var/log/nginx/error.mysite.log;
expires 1d;
}
}
And my apache configuration :
<VirtualHost *>
DocumentRoot /home/php/mysite/public
ServerName mysite
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9
PassengerRuby /usr/local/bin/ruby
RailsEnv development
#ServerAlias
<Directory /home/php/mysite/public>
#Conf Standard
AllowOverride All
Order allow,deny
Allow from all
</Directory>
TransferLog /dev/null
</VirtualHost>
My development.ru
MySite::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
# Log error messages when you accidentally call methods on nil.
config.whiny_nils = true
# Show full error reports and disable caching
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false
# Print deprecation notices to the Rails logger
config.active_support.deprecation = :log
# Only use best-standards-support built into browsers
config.action_dispatch.best_standards_support = :builtin
# Do not compress assets
config.assets.compress = false
# Expands the lines which load the assets
config.assets.debug = true
end
I use rails 3.1.1 with passenger. I thin it's really a nginx problem because when i go to http://mysite:81 (so on apache directly), everything work fine.
Thank you for help.
Upvotes: 3
Views: 2260
Reputation: 6660
My problem was about this in my nginx configuration
# On distribue les fichiers statiques directement
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|txt|srt|swf)$ {
root /home/php/mysite/public;
#access_log /var/log/nginx/access.mysite.log;
#error_log /var/log/nginx/error.mysite.log;
expires 1d;
}
So i remove it, it disables nginx to serve static file but it's not very usefull in development mode.
Thank you for help.
Upvotes: 8