• User Attivo

    Apache worker e PHP

    Salve
    Che problemi possono sorgere d una configurazione simile?


  • Moderatore

    effettivamente con worker si hanno delle limitazioni, ti consiglio di leggere qui http://brian.moonspot.net/2008/02/13/apache-worker-and-php/


  • User Attivo

    dalla tua esperienza in un sito di produzione hai messo il worker e il prefork?

    PS:dovendolo installare su un VPS di basso livello(128 mb di ram) si notano miglioramenti evidenti mettendo worker o e maeglio lasciar perdere?


  • Moderatore

    @Angelbit88 said:

    dalla tua esperienza in un sito di produzione hai messo il worker e il prefork?

    PS:dovendolo installare su un VPS di basso livello(128 mb di ram) si notano miglioramenti evidenti mettendo worker o e maeglio lasciar perdere?

    entrambi creano qualche problema e in tutta franchezza i miglioramenti non sono così eccezionali soprattutto quando c'è poca RAM....per questo motivo non ho mai usato nessuno dei due

    il consiglio che ti dò se vuoi un sito veloce su un VPS con così poca RAM è di scartare Apache e installare Nginx


  • User Attivo

    e installare Nginx
    facendo una ricerca con google sembra molto promettente ma essendo ancora in sviluppo.Problemi di sicurezza?ha qualche mailing-list che comunica gli aggiornamenti di sicurezza in inglese(so a stento l' italiano figuriamoci il russo).
    e facile da configurare o perdero gli ultimi capelli che mi sono rimasti?


  • Moderatore

    @Angelbit88 said:

    facendo una ricerca con google sembra molto promettente ma essendo ancora in sviluppo.Problemi di sicurezza?ha qualche mailing-list che comunica gli aggiornamenti di sicurezza in inglese(so a stento l' italiano figuriamoci il russo).
    e facile da configurare o perdero gli ultimi capelli che mi sono rimasti?

    no ma mica è ancora in sviluppo, la prima release stabile risale a 3 anni fa, io lo uso su parecchi server e non mi ha mai dato problemi per la configurazione è contenuta tutta nel file nginx.conf, che contiene anche le regole per il mod rewrite e tutto quello che sotto Apache normalmente va in .htaccess

    il file di configurazione è una cosa del genere

    
    user www www;
    worker_processes 5;
    
    #error_log  logs/error.log;  logs/error.log  notice;  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
        use epoll;
    }
    
    
    http {
        include       conf/mime.types;
        default_type  application/octet-stream;
    
    #    log_format main      '$remote_addr - $remote_user [$time_local] '
    #                         '"$request" $status $bytes_sent '
    #                         '"$http_referer" "$http_user_agent" '
    #                         '"$gzip_ratio"';
    
    #    log_format download  '$remote_addr - $remote_user [$time_local] '
    #                         '"$request" $status $bytes_sent '
    #                         '"$http_referer" "$http_user_agent" '
    #                         '"$http_range" "$sent_http_content_range"';
    
        log_format  main  '$remote_addr "$remote_user" [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $gzip_ratio';
    
        access_log  logs/access.log  main;
    
        client_header_timeout 3m;
        client_body_timeout   3m;
        send_timeout          3m;
    
        client_header_buffer_size 1k;
        large_client_header_buffers 4 4k;
    
        gzip on;
        gzip_min_length 1100;
        gzip_buffers    4 8k;
        gzip_types      text/plain;
    
        output_buffers 1 32k;
        postpone_output 1460;
    
        sendfile        on;
        tcp_nopush      on;
        tcp_nodelay     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  75 20;
    
        #gzip  on;
    
        server_names_hash_bucket_size 128;
    
        server {
            listen       184.13.32.202:80;
            server_name  dominio.ext alias www.dominio.ext;
    
            #charset koi8-r;
    
            access_log  logs/dominio.ext.access.log  main;
    
            location / {
    		
    	    if (!-e $request_filename) {
    		rewrite ^/(.*)$ /redir301.php?q=$1 last;
    	   }
                root   /home/www/dominio.ext/html;
                index  index.html index.htm index.php;
            }
    
            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   /home/www/dominio.ext/html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            location ~ \.php$ {
                fastcgi_pass   127.0.0.1:12384;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /home/www/dominio.ext/html$fastcgi_script_name;
                include        conf/fastcgi_params;
            }
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            ~ /\.ht {
            #    deny  all;
            #}
        }
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        {
        #    listen       443;
        #    server_name  localhost;
    
        #    ssl                  on;
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_timeout  5m;
    
        #    ssl_protocols  SSLv2 SSLv3 TLSv1;
        #    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        #    ssl_prefer_server_ciphers   on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    }
    
    

    da notare che puoi usare tutti i formati conosciuti per i log file, per esempio io uso il formato Apache perchè Awstats legge quello

    poi c'è da notare che PHP non è compilato come modulo ma va gestito tramite FastCGI, però francamente Nginx + FastCGI risulta più veloce di Apache e phpmod

    poi c'è il supporto per il mod_rewrite come puoi vedere e pure il supporto per bloccare le botnet, poi ci sono molti altri moduli sul sito, in sostanza non gli manca nulla

    la cosa importante è che consuma pochissima memoria ed è velocissimo


  • User Attivo

    poi c'è il supporto per il mod_rewrite
    quindi io devo installare drupal su questo server potro sempre usare le sue funzioni di mod_rewrite per ottenere dei clean urls.quindi io mi copio il contenuto dell' htaccess di drupal e lo metto dentro il config nginx(adattandolo eventualemtne alla sintassi) e funziona tutto?


  • Moderatore

    @Angelbit88 said:

    quindi io devo installare drupal su questo server potro sempre usare le sue funzioni di mod_rewrite per ottenere dei clean urls.quindi io mi copio il contenuto dell' htaccess di drupal e lo metto dentro il config nginx(adattandolo eventualemtne alla sintassi) e funziona tutto?

    si l'unica cosa che cambia è la sintassi, il resto è normale

    ti consiglio di leggere questo articolo che parla proprio di come installare Drupal su Nginx e Lighttpd

    http://hostingfu.com/article/running-drupal-with-clean-url-on-nginx-or-lighttpd


  • User Attivo

    mi sebra non c siao piu' controindicazioni.leggo un po' di doc e lo installo.grazie paolino per le indicazioni e le risposte