0 Пользователей и 1 Гость просматривают эту тему.
  • 15 Ответов
  • 1814 Просмотров
*

bagas

  • Захожу иногда
  • 16
  • 0
Joomla 3.3.4 nginx и конфиг htaccess
« : 17.06.2015, 20:02:23 »
Добрый вечер.
Решил перевести сайт с апача на nginx.
Код
nginx -v
nginx version: nginx/1.8.0
Возникли непонятные ситуации с конфигов htaccess.

https://docs.joomla.org/Nginx
В этой инструкции ничего не сказано про эти строки.
Это нужно переводить в нгинс?
Код
RewriteCond %{QUERY_STRING} category_id=.*
RewriteRule ^(.*)$ http://мой_сайт.ru/$1? [R=301,L]

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
« Последнее редактирование: 18.06.2015, 08:54:47 от bagas »
*

bagas

  • Захожу иногда
  • 16
  • 0
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #1 : 18.06.2015, 10:13:05 »
Пока такой конфиг. соорудил.

Код
server {
        listen 80;
        root /usr/local/www/default/;
        }

server {
        listen 80;
        server_name  24.com;
        return       301 http://www.24.com$request_uri;
        }

server {
        listen 80;
        server_name www.24.com;
        access_log /mnt/backLOG/log/nginx/24.access_log;
        error_log /mnt/backLOG/log/nginx/24.error_log info;
        root /usr/local/www/24.com;
        index index.php index.html index.htm default.html default.htm;

location / {
             try_files $uri $uri/ /index.php?$args;
        }

location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
            return 403;
            error_page 403 /403_error.html;
        }

location ~ \.php$ {
            fastcgi_pass unix:/tmp/www.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

location ~* \.(ico|pdf|flv)$ {
            expires 1y;
        }

location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
            expires 34d;
        }

location ^~ /administrator/ {
            index index.php;
            auth_basic           "closed site";
            auth_basic_user_file /usr/local/.htpasswd;
        allow 23.18.56.22;
        allow 27.5.20.26;
        }

location /pma {
            alias /usr/local/www/phpMyAdmin/;
            index index.php;
            auth_basic           "closed site";
            auth_basic_user_file /usr/local/.htpasswd;
        allow 23.18.56.22;
        allow 27.5.20.26;
        }

location ~ ^/pma/(.*\.php)$ {
            fastcgi_pass unix:/tmp/www.sock;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /usr/local/www/phpMyAdmin/$1;
            fastcgi_param DOCUMENT_ROOT /usr/local/www/phpMyAdmin;
        }

location ~ /\.ht {
            deny  all;
        }
}
« Последнее редактирование: 18.06.2015, 14:15:43 от bagas »
*

bagas

  • Захожу иногда
  • 16
  • 0
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #2 : 18.06.2015, 19:03:48 »
актуально.
*

voland

  • Профи
  • 9519
  • 422
  • Эта строка съедает место на вашем мониторе
*

bagas

  • Захожу иногда
  • 16
  • 0
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #4 : 19.06.2015, 08:32:05 »
https://docs.joomla.org/Nginx
Хмм.
Эту ссылку я видел, я в первом посте своем указал ее.
То-етсь этого (docs.joomla.org/Nginx) будит достаточно?
Хмм, тогда не пойму зачем добавлять такие настройки для апача в htaccess?
*

voland

  • Профи
  • 9519
  • 422
  • Эта строка съедает место на вашем мониторе
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #5 : 20.06.2015, 00:18:43 »
Какие настройки? В апаче свой реврайт, в в нгинксе - свой.
Что именно прописать для него - указано на оффсайте.
*

NortonFox

  • Завсегдатай
  • 450
  • 43
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #6 : 20.06.2015, 09:06:05 »
Системы немного отличаются, если в апаче, настройки отдельного сайта формируются в файле .htaccess который лежит в корне этого же сайта, то в nginx для каждого сайта есть свой конфиг файл, но находиться он в «etc/nginx/sites-available». Ну и конечно же другой синтаксис, который подробно описан на офф сайте.

Пример моих настроек
demo.conf         
                                                                                                                                         
  • [X]
Код: php
upstream backend-demo {server unix:/var/run/php5-demo.sock;}

server {
<------>listen<><------><------><------>80;
<------>server_name<---><------><------>demo.ru www.demo.ru;
<------>root<--><------><------><------>/var/www/demo/www;
<------>access_log<----><------><------>/var/log/nginx/demo-access.log;
<------>error_log<-----><------><------>/var/log/nginx/demo-error.log;
<------>index<-><------><------><------>index.php index.html;
<------>rewrite_log<---><------><------>on;
<------>if ($host != 'demo.ru' ) {
<------><------>rewrite><------><------>^/(.*)$  http://demo.ru/upstream backend-demo {server unix:/var/run/php5-demo.sock;}

server {
<------>listen<><------><------><------>80;
<------>server_name<---><------><------>demo.ru www.demo.ru;
<------>root<--><------><------><------>/var/www/demo/www;
<------>access_log<----><------><------>/var/log/nginx/demo-access.log;
<------>error_log<-----><------><------>/var/log/nginx/demo-error.log;
<------>index<-><------><------><------>index.php index.html;
<------>rewrite_log<---><------><------>on;
<------>if ($host != 'demo.ru' ) {
<------><------>rewrite><------><------>^/(.*)$  http://demo.ru/$1  permanent;
<------>}
<------>location ~* ^/core/ {
<------><------>deny<--><------><------>all;
<------>}
<------>location / {
<------><------>try_files<-----><------>$uri $uri/ @rewrite;
<------>}
<------>location /index.html {
<------><------>rewrite><------><------>/ / permanent;
<------>}

<------>location ~ ^/(.*?)/index\.html$ {
<------><------>rewrite><------><------>^/(.*?)/ // permanent;
<------>}
<------>location @rewrite {
<------><------>rewrite><------><------>^/(.*)$ /index.php?q=$1;
<------>}
<------>location ~ \.php$ {
<------><------>include><------><------>fastcgi_params;
<------><------>fastcgi_param<->SCRIPT_FILENAME $document_root$fastcgi_script_name;
<------><------>fastcgi_pass<-->backend-demo;
<------>}
<------>location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
<------>   access_log<-><------>off;
<------>   expires<----><------><------>10d;
<------>   break;
<------>}
<------>location ~ /\.ht {
<------><------>deny<--><------><------>all;
<------>}
}  permanent;
<------>}
<------>location ~* ^/core/ {
<------><------>deny<--><------><------>all;
<------>}
<------>location / {
<------><------>try_files<-----><------>$uri $uri/ @rewrite;
<------>}
<------>location /index.html {
<------><------>rewrite><------><------>/ / permanent;
<------>}

<------>location ~ ^/(.*?)/index\.html$ {
<------><------>rewrite><------><------>^/(.*?)/ // permanent;
<------>}
<------>location @rewrite {
<------><------>rewrite><------><------>^/(.*)$ /index.php?q=upstream backend-demo {server unix:/var/run/php5-demo.sock;}

server {
<------>listen<><------><------><------>80;
<------>server_name<---><------><------>demo.ru www.demo.ru;
<------>root<--><------><------><------>/var/www/demo/www;
<------>access_log<----><------><------>/var/log/nginx/demo-access.log;
<------>error_log<-----><------><------>/var/log/nginx/demo-error.log;
<------>index<-><------><------><------>index.php index.html;
<------>rewrite_log<---><------><------>on;
<------>if ($host != 'demo.ru' ) {
<------><------>rewrite><------><------>^/(.*)$  http://demo.ru/$1  permanent;
<------>}
<------>location ~* ^/core/ {
<------><------>deny<--><------><------>all;
<------>}
<------>location / {
<------><------>try_files<-----><------>$uri $uri/ @rewrite;
<------>}
<------>location /index.html {
<------><------>rewrite><------><------>/ / permanent;
<------>}

<------>location ~ ^/(.*?)/index\.html$ {
<------><------>rewrite><------><------>^/(.*?)/ // permanent;
<------>}
<------>location @rewrite {
<------><------>rewrite><------><------>^/(.*)$ /index.php?q=$1;
<------>}
<------>location ~ \.php$ {
<------><------>include><------><------>fastcgi_params;
<------><------>fastcgi_param<->SCRIPT_FILENAME $document_root$fastcgi_script_name;
<------><------>fastcgi_pass<-->backend-demo;
<------>}
<------>location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
<------>   access_log<-><------>off;
<------>   expires<----><------><------>10d;
<------>   break;
<------>}
<------>location ~ /\.ht {
<------><------>deny<--><------><------>all;
<------>}
};
<------>}
<------>location ~ \.php$ {
<------><------>include><------><------>fastcgi_params;
<------><------>fastcgi_param<->SCRIPT_FILENAME $document_root$fastcgi_script_name;
<------><------>fastcgi_pass<-->backend-demo;
<------>}
<------>location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
<------>   access_log<-><------>off;
<------>   expires<----><------><------>10d;
<------>   break;
<------>}
<------>location ~ /\.ht {
<------><------>deny<--><------><------>all;
<------>}
}
Я знаю только то, что ничего не знаю
*

bagas

  • Захожу иногда
  • 16
  • 0
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #7 : 20.06.2015, 09:54:55 »
Хмм, ладно сделаю по своему.
навсякий пожарный добавлю эти реврайты для сайта на nginx.
Код
RewriteCond %{QUERY_STRING} category_id=.*
RewriteRule ^(.*)$ http://мой_сайт.ru/$1? [R=301,L]
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
*

NortonFox

  • Завсегдатай
  • 450
  • 43
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #8 : 20.06.2015, 12:10:58 »
Хмм, ладно сделаю по своему.
навсякий пожарный добавлю эти реврайты для сайта на nginx.

В данном случаи вы пытаетесь использовать Joomla как движок, но на всякий случай рядом ставите modx, а то вдруг Joomla не будет работать.
Я знаю только то, что ничего не знаю
*

ChaosHead

  • Профи
  • 4748
  • 398
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #9 : 20.06.2015, 12:16:10 »
Не раз встречал готовые конфиги для nginx. На GitHub даже кто-то выкладывал. Вы же явно не первый, кто задался этим вопросом.
*

bagas

  • Захожу иногда
  • 16
  • 0
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #10 : 20.06.2015, 14:33:36 »
Не раз встречал готовые конфиги для nginx. На GitHub даже кто-то выкладывал. Вы же явно не первый, кто задался этим вопросом.
ясно.
В данном случаи вы пытаетесь использовать Joomla как движок, но на всякий случай рядом ставите modx, а то вдруг Joomla не будет работать.
Что за modx и для чего он?
Цитировать
Не раз встречал готовые конфиги для nginx. На GitHub даже кто-то выкладывал. Вы же явно не первый, кто задался этим вопросом.
В интернете полно конфигов под нгинс, но мне важна безопасность, конфиг я сам сделал, сравнил его с (https://docs.joomla.org/Nginx) практически одинаковы, вот задался вопрос нужно ли переводить из htaccess реврайты.
Если одназначного ответа/решения нет, то думаю лучьше переведу эти реврайты в нгинс.
*

NortonFox

  • Завсегдатай
  • 450
  • 43
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #11 : 20.06.2015, 14:38:26 »
Что за modx и для чего он?

Другой пример, вы ремонтируете деревянный стол, с помощью гвоздей и молотка, но рядом держите сварочный аппарат, хоть он и не нужен, но вдруг пригодиться сварить дерево или еще для чего.
Я знаю только то, что ничего не знаю
*

bagas

  • Захожу иногда
  • 16
  • 0
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #12 : 20.06.2015, 18:45:37 »
Посмотрим, вообщем.
*

bagas

  • Захожу иногда
  • 16
  • 0
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #13 : 21.06.2015, 14:31:51 »
Почему-то с этим кодом открывалась только главная страница, остальные страницы давали только скачать файл.
Код
location / {
try_files $uri $uri/ /index.php?$args;
if ($query_string ~ "base64_encode[^(]*\([^)]*\)"){
return 403;
}
if ($query_string ~* "(<|%3C)([^s]*s)+cript.*(>|%3E)"){
return 403;
}
if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})"){
return 403;
}
if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})"){
return 403;
}
if (!-e $request_filename){
rewrite ^(.*)$ /index.php break;
}
}
оставил такой конфиг.
Код
server {
listen 3.3.3.9:80;
server_name q-dr.net;
return 301 http://www.q-dr.net$request_uri;
}

server {
listen 3.3.3.9:80;
server_name www.q-dr.netm;
access_log /mnt/backLOG/log/nginx/q-dr.access_log;
error_log /mnt/backLOG/log/nginx/q-dr.error_log info;
root /usr/local/www/q-dr.net;
index index.php index.html index.htm default.html default.htm;
open_file_cache max=15024 inactive=600s;
open_file_cache_valid 3000s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}

location ~ \.php$ {
fastcgi_pass unix:/tmp/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location ~* \.(ico|pdf|flv)$ {
expires 1y;
}

location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
expires 30d;
}

location ~* ^/administrator/.+\.php {
auth_basic "closed site";
auth_basic_user_file /usr/local/.htpasswd;
fastcgi_pass unix:/tmp/www.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location ~ /\.ht {
deny all;
}
}

Какие нюансы безопасности еще учесть в связке (nginx+php-fpm+joomla3)?
*

NortonFox

  • Завсегдатай
  • 450
  • 43
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #14 : 21.06.2015, 17:00:23 »
Еще nginx может давать отдельному сайту отдельного пользователя, что очень удобно. Если взломали один сайт, то им не дотянуться до других.
Я знаю только то, что ничего не знаю
*

bagas

  • Захожу иногда
  • 16
  • 0
Re: Joomla 3.3.4 nginx и конфиг htaccess
« Ответ #15 : 21.06.2015, 17:36:46 »
Еще nginx может давать отдельному сайту отдельного пользователя, что очень удобно. Если взломали один сайт, то им не дотянуться до других.
Это я в курсе.
Лучше тогда использовать легкую виртуализацию jail на уровне операционной системы.
Кстати, добавил для всех сайтов в http отсек такое по безопасности.
Код
#
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block;";
add_header X-Content-Security-Policy "allow 'self';";
add_header X-WebKit-CSP "allow 'self';";
#
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенаправление url при смене версии Joomla и прежней структуры сайта

Автор Afman

Ответов: 20
Просмотров: 341
Последний ответ 23.09.2017, 08:15:02
от voland
Notice: Undefined offset: 1 in /libraries/joomla/environment/browser.php on line 282

Автор planetaryi

Ответов: 3
Просмотров: 247
Последний ответ 17.09.2017, 11:24:53
от botva
Вместо сайта отображается форма Joomla

Автор sts34

Ответов: 15
Просмотров: 208
Последний ответ 06.09.2017, 11:27:48
от lexxbry
Joomla 3.7 Баги с отображением полей

Автор yarek

Ответов: 0
Просмотров: 79
Последний ответ 29.08.2017, 21:24:31
от yarek
Замаскировать Joomla, например, под битрикс

Автор dm-krv

Ответов: 23
Просмотров: 315
Последний ответ 29.08.2017, 19:15:33
от dmitry_stas