PrestaShop na NGINX! – SZYBKIE I BEZPROBLEMOWE

prestashop-nginx-300x199

Witajcie, dziś poradnik jak uruchomić sklep PrestaShop na serwerze WWW NGINX.

W dokumentacji widnieje bowiem NGINX jako serwer który Prestę wspiera, więc postanowiłem pokazać Wam moją propozycję pliku konfiguracyjnego (wirtualnego hosta).

W mojej konfiguracji domyślnie przekierowanie następuje na połączenie szyfrowane https, więc do działania musisz mieć certyfikat lub po prostu musisz sobie przerobić konfiga.

							#### V-HOST by LINUXIARZ.PL ####	
	##PRZEKIEROWANIE NA HTTPS

server { 
	listen  80;
	server_name www.domena.pl domena.pl;
	return	302 https://domena.pl$request_uri?;
}

server {
	fastcgi_read_timeout 180s;
	listen  443 ssl spdy; 
	server_name domena.pl www.domena.pl;
	root /home/www/presta; ## KATALOG DO PLIKOW WWW
	index index.php index.html;

	
	##LOGI - SCIEŻKI

	access_log  /var/log/nginx/domena.pl-access.log	combined;
        error_log   /var/log/nginx/domena.pl-error.log	error;
	
	#WŁĽCZ JESLI MASZ PAGESPEED (np. moje kompilacje)
	#pagespeed on;
	
	## USTAWENIA SSL 
 
 	ssl			on;
        ssl_certificate		/etc/ssl/ssl/ssl-unified.crt;
        ssl_certificate_key	/etc/ssl/ssl/klucz.key;
        ssl_session_cache	shared:SSL:10m;
        ssl_session_timeout 	10m;
	#ssl_protocols		SSLv2 SSLv3 TLSv1;
	ssl_protocols		TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers		ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

	ssl_prefer_server_ciphers   on;
        #
	spdy_headers_comp 5;
        ssl_buffer_size 1400;
        ssl_session_tickets on;
	add_header Alternate-Protocol  443:npn-spdy/3;

	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /etc/ssl/ssl/ca-certs.pem;


	## PRZEKIERUJ WSZYSTKIE ZAPYTANIA NON-SSL NA SSL

	if ($http_host != "domena.pl") {
                 rewrite ^ https://domena.pl$request_uri permanent;
       }

       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }

       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }


       ## WYKLUCZ DOSTEP DO PLIKÓW z "." NA POCZĽTKU
       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }

       rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
       rewrite ^/([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$1$2$3.jpg last;
       rewrite ^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last;
       rewrite ^/([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last;
       rewrite ^/([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last;
       rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last;
       rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last;
       rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last;
       rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last;
       rewrite ^/c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /img/c/$1$2$3.jpg last;
       rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ /img/c/$1$2.jpg last;
       rewrite ^/images_ie/?([^/]+)\.(jpe?g|png|gif)$ /js/jquery/plugins/fancybox/images/$1.$2 last;
       try_files $uri $uri/ /index.php$is_args$args;
       error_page 404 /index.php?controller=404;
	   
       location ~* \.(gif)$ {
          expires 2592000s;
       }
       location ~* \.(jpeg|jpg)$ {
          expires 2592000s;
       }
       location ~* \.(png)$ {
          expires 2592000s;
       }
       location ~* \.(css)$ {
          expires 604800s;
       }
       location ~* \.(js|jsonp)$ {
          expires 604800s;
       }
       location ~* \.(js)$ {
          expires 604800s;
       }
       location ~* \.(ico)$ {
          expires 31536000s;
       }

	## USTAWIENIA PHP
	
	location ~ \.php$ {
        try_files $uri =404;

	## TAKA SCIEŻKA DO PHP5-FPM DLA MOJEGO SERWERA (DEBIAN7)
        fastcgi_pass unix:/var/run/php-fpm.socket;
	
	## DLA DEBIANA 8 DOMYSLNE
	#fastcgi_pass unix:/var/run/php-fpm.sock;
        
	fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
	fastcgi_buffer_size 128k;
        fastcgi_buffers 256 16k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
	}

}

Plik konfiguracyjny jest tutaj:

http://pliki.linuxiarz.pl/10-2015/presta.conf

Pobierz 🙂

wget http://pliki.linuxiarz.pl/10-2015/presta.conf -O /etc/nginx/conf.d/preshashop.conf

Powyższy konfig bardzo świetnie sprawuje się w sklepie Lem-ON.pl https://sklep.lem-on.pl/