Re: nginx перед апачем, битые картинки, сss и js

Igor Sysoev igor на sysoev.ru
Пн Дек 6 16:57:32 MSK 2010


On Mon, Dec 06, 2010 at 08:51:35AM -0500, Syd wrote:

> Коллеги, добрый день.
> 
> Есть nginx 0.8.53 как фронтенд перед апачем.
> Все это крутится на CentOS 5.5 Final.
> 
> Наблюдаю проблему - криво грузятся
> картинки, css и скрипты js -
> соответственно, сайты отображаются
> некорректно.
> Перекопал уже все, что можно - мысли
> кончились.

В error_log что ?

> Помогите победить проблему.
> 
> Вот конфиг nginx:
> 
> user apache apache;
> worker_processes  15;
> worker_rlimit_nofile 100000;
> error_log   /var/log/nginx/error.log;
> pid        /var/run/nginx.pid;
> 
> events {
>     worker_connections  1024;
>     use epoll;
> }
> 
> http {
>     include       /etc/nginx/mime.types;
>     default_type  application/octet-stream;
> 
>     log_format  main  '$remote_addr - $remote_user [$time_local]
> "$request" '
>                       '$status $body_bytes_sent "$http_referer" '
>                       '"$http_user_agent" "$http_x_forwarded_for"';
> 
>     access_log  /var/log/nginx/access.log  main;
> 
>     sendfile        on;
>     tcp_nopush      on;
>     tcp_nodelay     on;
>     server_tokens   off;
>     gzip            on;
>     gzip_static     on;
>     gzip_comp_level 5;
>     gzip_min_length 1024;
>     keepalive_timeout  65;
>     limit_zone   myzone  $binary_remote_addr  10m;
> 
>     include /etc/nginx/conf.d/*.conf;
> 
>     client_max_body_size 16m;
> 
>         proxy_buffer_size          4k;
>         proxy_buffers              4 32k;
>         proxy_busy_buffers_size    64k;
>         proxy_temp_file_write_size 64k;
> 
> 
> Вот конфиг типичного хоста:
> 
>         server {
>                 listen IP:80;
>                 server_name DOMAIN.ru www.DOMAIN.ru;
>                 rewrite ^(/manager/.*)$ https://$host$1 permanent;

Не нужно гонять регулярное выражение для всех запросов:

location ^~ /manager/
     rewrite ^ https://$host$request_uri? permanent;
}

>                 error_page 404 = @fallback;
>                 location ~*
> ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
>                         proxy_pass http://IP:8080;
>                         proxy_redirect http://DOMAIN.ru:8080/ /;
>                         proxy_set_header Host $host;
>                         proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
>                         proxy_set_header X-Real-IP $remote_addr;
>                 }
>                 location / {
>                         proxy_pass http://IP:8080;
>                         proxy_redirect http://DOMAIN.ru:8080/ /;
>                         proxy_set_header Host $host;
>                         proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
>                         proxy_set_header X-Real-IP $remote_addr;
>                         proxy_cache_valid 200 302 304 1m;
>                         proxy_cache_valid 404 1m;
>                         expires -1;
>                 }
>                 location ~*
> ^.+\.(html|htm|css|xml|rss|gif|jpeg|jpg|js|atom|mml|txt|jad|wml|htc|png|tif|tiff|wbmp|ico|jng|bmp|jar|war|ear|hqx|doc|pdf|ps|eps|ai|rtf|xls|ppt|wmlc|xhtml|cco|jardiff|jnlp|run|pl|pm|prc|pdb|rar|rpm|sea|swf|sit|tcl|tk|der|pem|crt|xpi|zip|bin|exe|dll|deb|dmg|eot|iso|img|msi|msp|msm|mid|midi|kar|mp3|ra|3gpp|3gp|mpeg|mpg|mov|flv|mng|asx|asf|wmv|avi|rar)$
> {
>                         access_log
> /var/www/httpd-logs/DOMAIN.ru.access.log;
>                         error_log /var/www/httpd-logs/DOMAIN.error.log;
>                         set $proot
> "/var/www/fincult/data/www/DOMAIN.ru";
>                         root $proot;

А вот это зачем ? Достаточно
  root  /var/www/fincult/data/www/DOMAIN.ru;


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru