Форум русской поддержки Joomla!® CMS
11.12.2016, 04:22:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Joomla 3.3.4 nginx и конфиг htaccess

 (Прочитано 964 раз)
0 Пользователей и 1 Гость смотрят эту тему.
bagas
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16



« : 17.06.2015, 21: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, 09:54:47 от bagas » Записан
bagas
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16



« Ответ #1 : 18.06.2015, 11: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, 15:15:43 от bagas » Записан
bagas
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16



« Ответ #2 : 18.06.2015, 20:03:48 »

актуально.
Записан
voland
Профи
********

Репутация: +488/-86
Online Online

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #3 : 19.06.2015, 03:23:09 »

https://docs.joomla.org/Nginx
Записан
bagas
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16



« Ответ #4 : 19.06.2015, 09:32:05 »

Хмм.
Эту ссылку я видел, я в первом посте своем указал ее.
То-етсь этого (docs.joomla.org/Nginx) будит достаточно?
Хмм, тогда не пойму зачем добавлять такие настройки для апача в htaccess?
Записан
voland
Профи
********

Репутация: +488/-86
Online Online

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #5 : 20.06.2015, 01:18:43 »

Какие настройки? В апаче свой реврайт, в в нгинксе - свой.
Что именно прописать для него - указано на оффсайте.
Записан
NortonFox
Завсегдатай
*****

Репутация: +43/-0
Offline Offline

Пол: Мужской
Сообщений: 454



« Ответ #6 : 20.06.2015, 10:06:05 »

Системы немного отличаются, если в апаче, настройки отдельного сайта формируются в файле .htaccess который лежит в корне этого же сайта, то в nginx для каждого сайта есть свой конфиг файл, но находиться он в «etc/nginx/sites-available». Ну и конечно же другой синтаксис, который подробно описан на офф сайте.

Пример моих настроек
demo.conf         
                                                                                                                                         
  • [X]
Код
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;
<------>}
}
Записан
bagas
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16



« Ответ #7 : 20.06.2015, 10: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
Завсегдатай
*****

Репутация: +43/-0
Offline Offline

Пол: Мужской
Сообщений: 454



« Ответ #8 : 20.06.2015, 13:10:58 »

Хмм, ладно сделаю по своему.
навсякий пожарный добавлю эти реврайты для сайта на nginx.

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

Репутация: +382/-10
Offline Offline

Пол: Мужской
Сообщений: 4398



« Ответ #9 : 20.06.2015, 13:16:10 »

Не раз встречал готовые конфиги для nginx. На GitHub даже кто-то выкладывал. Вы же явно не первый, кто задался этим вопросом.
Записан
bagas
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16



« Ответ #10 : 20.06.2015, 15:33:36 »

Не раз встречал готовые конфиги для nginx. На GitHub даже кто-то выкладывал. Вы же явно не первый, кто задался этим вопросом.
ясно.
В данном случаи вы пытаетесь использовать Joomla как движок, но на всякий случай рядом ставите modx, а то вдруг Joomla не будет работать.
Что за modx и для чего он?
Цитировать
Не раз встречал готовые конфиги для nginx. На GitHub даже кто-то выкладывал. Вы же явно не первый, кто задался этим вопросом.
В интернете полно конфигов под нгинс, но мне важна безопасность, конфиг я сам сделал, сравнил его с (https://docs.joomla.org/Nginx) практически одинаковы, вот задался вопрос нужно ли переводить из htaccess реврайты.
Если одназначного ответа/решения нет, то думаю лучьше переведу эти реврайты в нгинс.
Записан
NortonFox
Завсегдатай
*****

Репутация: +43/-0
Offline Offline

Пол: Мужской
Сообщений: 454



« Ответ #11 : 20.06.2015, 15:38:26 »

Что за modx и для чего он?

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

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16



« Ответ #12 : 20.06.2015, 19:45:37 »

Посмотрим, вообщем.
Записан
bagas
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16



« Ответ #13 : 21.06.2015, 15: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
Завсегдатай
*****

Репутация: +43/-0
Offline Offline

Пол: Мужской
Сообщений: 454



« Ответ #14 : 21.06.2015, 18:00:23 »

Еще nginx может давать отдельному сайту отдельного пользователя, что очень удобно. Если взломали один сайт, то им не дотянуться до других.
Записан
bagas
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 16



« Ответ #15 : 21.06.2015, 18: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';";
#
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet