We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

nginx static + apache22 mod_php


dong
26-11-2010, 13:28
Dzięki uwagą wyczytanym na tym forum zdecydowałem zmienić trochę filozofię serwowania www

- nginx ma być z przodu i służyć do serwowania statycznych plików
- proxy na pliki php do apache22 i mod_php

Znalazłem na Google dwa rozwiązania:
1. Serwuje wszystko poza php z nginx
2. Serwuje tylko obrazki z nginx

Zaletą drugiego rozwiązania jest obsługa .htaccess z apache. Minusem - pliki htm muszą być serwowane z apache22, bo inaczej .htaccess nie działa. Wygląda to tak:
Kod:
server {
    listen       80;
    server_name x.net www.x.net;

if ($host = 'www.x.net' ) {
    rewrite ^/(.*) http://x.net/$1 permanent;
}


location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|html)$ {
    root /home/a/public_html;
    access_log /var/log/x.net;
    expires 30d;
    }
location / {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:8080;
    }
}
Ciekaw jestem Waszych obiekcji. Do niektórych skryptów nie znalazłem przetłumaczonego mod_rewrite to rewrite z nginx, dlatego i tak używałem apache22. Serwowanie statycznych plików z nginx działa 3 razy szybciej (na podstawie prostych benchmarków).

Czy jeśli zdecyduje się na sposób nr 1 to cokolwiek to zmieni? Nie korzystam z plików z roszerzeniem htm, są one właściwie wykorzystywane tylko przez rewrite w moich skryptach. Czy warto się pogłowić nad przetłumaczeniem rewrite w moim przypadku? Czy nie będzie to miało większego wpływu na wydajność?