Перейти к содержанию

Рекомендуемые сообщения

Дано загорелся темой отказа от апача. Поднял для своих проектов сервер NGINX+MariaBD+php5-fpm. Получил с помощью гугла и манов хороший конфиг с безопасностью, ЧПУ и много кеширования =). Выкладываю в общее пользование и возможное улучшение.

Gist - https://gist.github.com/xXxSPYxXx/8908402

server{
listen 80;
listen 443 ssl;
server_name site.ru www.site.ru;
ssl on;

if ( $scheme = "http" ) {
rewrite ^/(.*)$ https://$host/$1 permanent;
}
index index.php index.html;

access_log /var/log/nginx/site.ru.access.log;
error_log /var/log/nginx/site.ru.error.log;

root /var/www/site.ru;

keepalive_timeout 60;
ssl_certificate /etc/nginx/ssl/ssl-unified.crt;
ssl_certificate_key /etc/nginx/ssl/site.ru.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
add_header Strict-Transport-Security 'max-age=604800';

location ~ \.php$ {
try_files $uri = 404;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
}

location /image/data {
autoindex on;
}

location /upload {
autoindex on;
allow all;
log_not_found off;
}

location /admin {
index index.php;
}

location / {
try_files $uri @opencart;
}

location @opencart {
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}

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

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~* \.(xml|csv|xls)$ {
allow all;
log_not_found off;
}


# Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS!
location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ {
deny all;
}

# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}

location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
expires max;
log_not_found off;
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошая инициатива. Возможно стоит еще добавить:

location ~* \.(xml|csv|xls)$ {
    allow all;
    log_not_found off;
}

ну и для папки upload

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а  как быть с настройкой  кеширования  корзины ? 

у меня щас  проблема что корзина глючит по страшному и данные не обновляются на страинце

сборку поднял также на  NGINX+MariaBD+php5-fpm

 

настроил по 

https://github.com/david-rahrer/nginx-opencart

и  чет  все равно 

корзина  глючит,  обновляется только если браузер обновить.

 

и у кого есть тогда   настройки php и php5-fpm

 

или хотя бы  куда копать то..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

корзина не обновляется из-за кэш, если он настроен 

 

у меня nginx+apache

файловое кэширование отдает статику и корзина не корректно работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От eduard174
      Всем доброго дня!
      Просьба поделиться опытом как настроить рекламу своего магазина на Опенкарт 3.0. Магазин создан в июле этого года и до сих пор ни одного заказа....
    • От apushkin
      Русская сборка OpenCart Version 3.0.2.0
      Есть модуль АОП и SupplerMailLink

      Нам требуется:

      1. Автоматически обновлять ассортимент товаров с их характеристиками и фотографиями из файла с сайта донора CSV-файл с описаниями товаров и ссылками на изображения (Т.е. если появился новый товар у поставщика он должен появится и у нас, если поставщик перестал продавать какие-то товары, то у нас он автоматически отключается)

      2. Обновлять цену (с нашим коэффициентом) и остатки товара из другого файла с сайта донора CSV-файл с ценами и наличием

      Задача срочная.
      Жду предложений.
      Мой WhatsApp/Telegram +79313084110
      Александр
    • От weterglass
      Доброго времени суток, опишу суть проблемы:
      Загрузил товары через DKA Export.Import без категорий. Товар на сайте находится и в него можно зайти. При определении ему категории, товар в ней появляется, но стоит нажать на товар, появляется надпись: "Запрашиваемая страница не найдена!".
      Если же создать дубль товара, а основной удалить, то проблема исчезает. Но это долго делать дубли всех товаров. Есть ли более быстрое решение проблемы? 
    • От GrindBalls
      Здравствуйте! Подскажите молодому и неопытному почему после установки SeoPro страница с категориями товаров не открывается нормально, вместо них программный код. Товары, информационные страницы, регистрация, заказ все работает правильно, если оставить стандартные настройки, то категории работают. Сайт kigurumix.ru
      Настройки:
      версия opencart 2.3
      Включить Seopro: да
      Включить с категориями: да
      Префикс: .html
      Язык шаблона английский, но переведен на русский. 
      Кэш чистил
      почистил дубли в phpMyAdmin и удалил ненужные товары которые шли с шаблоном
      урлы заполнены есть на всех товарах и категориях
      файл .htaccess в нормальном формате, текст:
      SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip Header unset ETag FileETag None <FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$"> Header unset Last-Modified Header set Expires "Fri, 21 Dec 2100 00:00:00 GMT" Header set Cache-Control "public, no-transform" </FilesMatch> <IfModule mod_expires.c> ExpiresActive on # Perhaps better to whitelist expires rules? Perhaps. ExpiresDefault "access plus 1 month" # cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5) ExpiresByType text/cache-manifest "access plus 0 seconds" # Your document html ExpiresByType text/html "access plus 0 seconds" # Data ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" # RSS feed ExpiresByType application/rss+xml "access plus 1 hour" # Favicon (cannot be renamed) ExpiresByType image/x-icon "access plus 1 week" # Media: images, video, audio ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month" # HTC files (css3pie) ExpiresByType text/x-component "access plus 1 month" # Webfonts ExpiresByType font/truetype "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType application/x-font-woff "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" # CSS and JavaScript ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ExpiresByType text/javascript "access plus 1 year" <IfModule mod_headers.c> Header append Cache-Control "public" </IfModule> </IfModule> # 1.To use URL Alias you need to be running apache with mod_rewrite enabled. # 2. In your opencart directory rename htaccess.txt to .htaccess. # For any support issues please visit: http://www.opencart.com Options +FollowSymlinks # Prevent Directoy listing Options -Indexes # Prevent Direct Access to files <FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))"> Order deny,allow Deny from all </FilesMatch> # SEO URL Settings RewriteEngine On # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteRule ^system/download/(.*) index.php?route=error/not_found [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] ### Additional Settings that may need to be enabled for some servers ### Uncomment the commands by removing the # sign in front of it. ### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that. # 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it: # php_flag register_globals off # 2. If your cart has magic quotes enabled, This may work to disable it: # php_flag magic_quotes_gpc Off # 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try # php_value upload_max_filesize 999M # 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value post_max_size 999M # 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_execution_time 200 # 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_input_time 200 # 7. disable open_basedir limitations # php_admin_value open_basedir none  
    • От EvaSystems
      Отзывы
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.