nginx « Раздача статики через nginx

Есть сайт на пхп.
Организован так. Есть несколько поддоменов, на которых расположена статика. И есть основной где выдается HTML от php.

Подскажите настройку для такой конфигурации, переводить php под nginx совсем не хочется, хочется использовать как проксирующий сервер. Может знаете хорошие статьи, или опишите основной подход.

1 ответов


Ваш вопрос послужил поводом наконец-то дописать статейку «Настройка связки nginx+apache» (пишите в личку - подскажу, чем смогу)



    location ~* ^.+\.(jpg|jpeg|gif|txt|mp3|png|css)$ {
  aio on;
        directio 512; # подбирается индвидуально
        output_buffers 128 512k; # аналогично
  gzip_static on;
        root         /usr/local/www/studik.org.ru/www;
        access_log   off;
        expires      max;
             }
 

Вот так вот.

куски для примера с рабочего сервера, nginx работает как прокси (location /) для апача, отдельные места определены под статику (например, location /images/), также можно делать выборки по расширению (в примере ниже), повесить сервер со статикой на отдельный ip (listen xxx.xxx.xxx.xxx:80;, под VDS/colocation выделяют зачастую несколько ip)


http {
    include       mime.types;
    default_type  application/octet-stream;

    server {
        listen xxx.xxx.xxx.xxx:80;
        server_name localhost;

        location / {
       proxy_pass http://127.0.0.1:80;
      proxy_redirect     off;
      proxy_set_header X-Forwarded-for $remote_addr;
      proxy_set_header  Host  $host;
      proxy_set_header  X-Real-IP  $remote_addr;
        }
        location ~* \.(gif|jpg|jpeg|png)$ {
      expires  max;
      add_header  Last-Modified: $date_gmt;
      add_header  Cache-Control: public;
      try_files   $uri $uri/;
  }
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
 
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
            deny  all;
        }
    }
}