Nginx és a virtualhostok

Átálltam és megtértem Nginx -re. A találós kérdés a következő: Az alábbi grafikon alapján melyik volt az az óra amikor átálltam Nginx -re? 🙂

Apache vs Nginx

Apache vs Nginx

Apache vs Nginx - week

Apache vs Nginx - week

Az átállásban a legtöbb időt a különböző általam hostolt oldalak rewritejainak átírása vette igénybe, de most már határozottan állíthatom hogy az Nginx rewrite logikája jó és szép és jobban átlátható mint az Apache -é. A virtual hostok beállítása hasonló, kicsit szószátyárabb, de lássuk is a részleteket:

Az előző cikkben beállítottuk az nginx -et, most lássuk a finomhangolást. Az /etc/nginx/nginx.conf nálam most így néz ki (az extra gzip sorok jelentősen növelik a sebességet!):

user www-data;
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    access_log  /var/log/nginx/access.log;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;
    gzip  on;
    gzip_http_version 1.1;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_proxied any;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_buffers 16 8k;
    gzip_disable msie6;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Látható hogy az apache -hoz hasonlóan itt is felépíthetünk egy hasonló sites-available, sites-enabled struktúrát, és az egyes virtualhostokat külön fileokba pakolhatjuk.

Szükségünk lesz még egy közös, includeolható (de szép magyar szó) filera, amit tegyünk mondjuk az /etc/nginx/fastscgi_params helyre, a tartalma meg legyen ez:

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

A fentiekből látszik, hogy a webszerver változóinak átadásáról van itt szó, tehát tetszőlegesen bővíthető a lista…

Egy alap virtualhost beállítás kb így néz ki:

server {
        listen   80;
        server_name virtualhostneve.com www.virtualhostneve.com;

        access_log  /var/log/nginx/vhostneve-access.log;
        error_log  /var/log/nginx/vhostneve-error.log;

        location / {
                root   /www/virtualhostneve.com/;
                index  index.php index.html;
        }

        location ~ \.php$ {
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param  SCRIPT_FILENAME  /www/virtualhostneve.com$fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }
}

A fenti felállás már működőképes PHP -ket teljes mértékben kiszolgáló virtualhostot eredményez. A következő cikkben a rewrite -okat, wordpress specifikus beállításokat vesszük górcső alá.

Ja, és köszi Joci!

RSS -en követheted a hozzászólásokat.