Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность valmon
Я не совсем понимаю как работает try_files, если не затруднит, могли бы
привести пример на моем случае?

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272970#msg-272970

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность Илья Шипицин
если для вас это является понятным, и работает так, как вы ожидаете, почему
бы и нет.

я бы на try_files сделал. и от "expires max" обычно больше вреда, чем
пользы (если содержимое файла поменяется, а имя останется прежним).



2017-03-15 19:50 GMT+05:00 valmon :

> В общем, нарисовался вот такой конфиг, есть замечание, даже со статичным
> index.html все получается, есть замечание?
>
>
> location / {
> root /home/admin/web/site.com/public_html;
> location ~ ^/[A-Z][A-Za-z]*. {
> rewrite ^/(.*)$ /index2.php?q=$1 last;
> }
> if (!-e $request_filename) {
> rewrite ^/(.*)$ /index.php?q=$1 last;
> }
> location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
> expires max;
> }
> location ~ [^/]\.php(/|$) {
> fastcgi_param SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
> if (!-f $document_root$fastcgi_script_name) {
> return  404;
> }
> fastcgi_pass127.0.0.1:9000;
> fastcgi_index   index.php;
> include /etc/nginx/fastcgi_params;
> }
> location ~* ^.+\.(xml|ini|bin|sql|log)$ {
> denyall;
> return  403;
> }
> location ~* ^/(hosts|core|patches|db|others|tmp)/ {
> denyall;
> return  403;
> }
> }
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272965#msg-272965
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность valmon
В общем, нарисовался вот такой конфиг, есть замечание, даже со статичным
index.html все получается, есть замечание?


location / {
root /home/admin/web/site.com/public_html;
location ~ ^/[A-Z][A-Za-z]*. {
rewrite ^/(.*)$ /index2.php?q=$1 last;
}
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
expires max;
}
location ~ [^/]\.php(/|$) {
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
if (!-f $document_root$fastcgi_script_name) {
return  404;
}
fastcgi_pass127.0.0.1:9000;
fastcgi_index   index.php;
include /etc/nginx/fastcgi_params;
}
location ~* ^.+\.(xml|ini|bin|sql|log)$ {
denyall;
return  403;
}
location ~* ^/(hosts|core|patches|db|others|tmp)/ {
denyall;
return  403;
}
}

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272965#msg-272965

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность Илья Шипицин
чем плохо два локейшена ?

2017-03-15 18:01 GMT+05:00 valmon :

> Нет, чтобы не делать два location
> location ~* ^.+\.(xml|ini|bin|sql|log)$ {
> denyall;
> return  403;
> }
> location ~* ^/(hosts|core|patches|db|others)/ {
> denyall;
> return  403;
> }
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272960#msg-272960
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность valmon
Нет, чтобы не делать два location
location ~* ^.+\.(xml|ini|bin|sql|log)$ {
denyall;
return  403;
}
location ~* ^/(hosts|core|patches|db|others)/ {
denyall;
return  403;
}

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272960#msg-272960

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность Илья Шипицин
если имеется в виду, что файлы с таким расширением только в таких папка, то
через вложенные локейшены

15 марта 2017 г., 17:00 пользователь valmon 
написал:

> И не говорите)
>
> Собственно вопрос, как к регулярным выражением для location ~*
> ^.+\.(xml|ini|bin|sql|log)$  добавить директории типа style|public?
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272957#msg-272957
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность valmon
И не говорите)

Собственно вопрос, как к регулярным выражением для location ~*
^.+\.(xml|ini|bin|sql|log)$  добавить директории типа style|public?

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272957#msg-272957

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность Илья Шипицин
аккуратнее с конфигами, чтобы демонов не вызвать :)

2017-03-15 16:17 GMT+05:00 valmon :

> Да, вы правы, локация не в том порядке, вот что получилось, но как
> выяснилось, по частям не вариант, получилось уже приличное количество
> исключений, для отдачи 403
> location ~* ^.+\.(xml|ini|bin|sql|log)$ {
> denyall;
> return  403;
> }
> server {
> listen  192.168.0.147:443;
> server_name site.com;
> root/home/admin/web/site.com/public_html;
> index   index.php index.html index.htm;
> access_log  /var/log/nginx/domains/site.com.log combined;
> access_log  /var/log/nginx/domains/site.com.bytes bytes;
> error_log   /var/log/nginx/domains/site.com.error.log error;
>
> ssl on;
> ssl_certificate  /home/admin/conf/web/ssl.site.com.pem;
> ssl_certificate_key  /home/admin/conf/web/ssl.site.com.key;
>
> location / {
> root /home/admin/web/site.com/public_html;
> location ~ ^/[A-Z][A-Za-z]*. {
> if (!-e $request_filename) {
> #rewrite ^/(.*)$ /core/Load.php?q=$1 last; Не работает
> Inclede с относительным путем
> rewrite ^/(.*)$ /index2.php?q=$1 last;
> }
> }
> location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
> expires max;
> }
> location ~ [^/]\.php(/|$) {
> fastcgi_param SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
> if (!-f $document_root$fastcgi_script_name) {
> return  404;
> }
>
> fastcgi_pass127.0.0.1:9000;
> fastcgi_index   index.php;
> include /etc/nginx/fastcgi_params;
> }
> location ~* ^.+\.(xml|ini|bin|sql|log)$ {
> denyall;
> return  403;
> }
> }
>
> #error_page  403 /error/404.html;
> #error_page  404 /error/404.html;
> error_page  500 502 503 504 /error/50x.html;
>
> location /error/ {
> alias   /home/admin/web/site.com/document_errors/;
> }
>
> location ~* "/\.(htaccess|htpasswd)$" {
> denyall;
> return  404;
> }
>
> include /etc/nginx/conf.d/phpmyadmin.inc*;
> include /etc/nginx/conf.d/phppgadmin.inc*;
> include /etc/nginx/conf.d/webmail.inc*;
>
> include /home/admin/conf/web/snginx.site.com.conf*;
> }
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272951#msg-272951
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность valmon
Да, вы правы, локация не в том порядке, вот что получилось, но как
выяснилось, по частям не вариант, получилось уже приличное количество
исключений, для отдачи 403
location ~* ^.+\.(xml|ini|bin|sql|log)$ {
denyall;
return  403;
}
server {
listen  192.168.0.147:443;
server_name site.com;
root/home/admin/web/site.com/public_html;
index   index.php index.html index.htm;
access_log  /var/log/nginx/domains/site.com.log combined;
access_log  /var/log/nginx/domains/site.com.bytes bytes;
error_log   /var/log/nginx/domains/site.com.error.log error;

ssl on;
ssl_certificate  /home/admin/conf/web/ssl.site.com.pem;
ssl_certificate_key  /home/admin/conf/web/ssl.site.com.key;

location / {
root /home/admin/web/site.com/public_html;
location ~ ^/[A-Z][A-Za-z]*. {
if (!-e $request_filename) {
#rewrite ^/(.*)$ /core/Load.php?q=$1 last; Не работает
Inclede с относительным путем
rewrite ^/(.*)$ /index2.php?q=$1 last;
}
}
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
expires max;
}
location ~ [^/]\.php(/|$) {
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
if (!-f $document_root$fastcgi_script_name) {
return  404;
}

fastcgi_pass127.0.0.1:9000;
fastcgi_index   index.php;
include /etc/nginx/fastcgi_params;
}
location ~* ^.+\.(xml|ini|bin|sql|log)$ {
denyall;
return  403;
}
}

#error_page  403 /error/404.html;
#error_page  404 /error/404.html;
error_page  500 502 503 504 /error/50x.html;

location /error/ {
alias   /home/admin/web/site.com/document_errors/;
}

location ~* "/\.(htaccess|htpasswd)$" {
denyall;
return  404;
}

include /etc/nginx/conf.d/phpmyadmin.inc*;
include /etc/nginx/conf.d/phppgadmin.inc*;
include /etc/nginx/conf.d/webmail.inc*;

include /home/admin/conf/web/snginx.site.com.conf*;
}

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272951#msg-272951

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность Илья Шипицин
"deny"  и "return 403" взаимоисключающие, хватило бы любого из.

насчет того, какой локейшен срабатывает, алгоритм описан, например, вот тут

http://nginx.org/ru/docs/http/request_processing.html

"nginx вначале ищет среди всех префиксных location’ов, заданных строками,
максимально совпадающий. В вышеприведённой конфигурации указан только один
префиксный location “/”, и поскольку он подходит под любой запрос, он и
будет использован, если других совпадений не будет найдено. Затем nginx
проверяет location’ы, заданные регулярными выражениями, в порядке их
следования в конфигурационном файле. При первом же совпадении поиск
прекращается и nginx использует совпавший location. Если запросу не
соответствует ни одно из регулярных выражений, nginx использует максимально
совпавший префиксный location, найденный ранее. "


возможно, у вас порядок локейшенов задан такой, что срабатывает другая
регулярка (я так понял, у вас запрос попадает под обе регулярки)

15 марта 2017 г., 14:55 пользователь valmon 
написал:

> что делать с "можно слить файлы конфигурации" - в принципе, странно, что вы
>
> об этом думаете заранее.
>
> А не зря, реврайт из модуля для апача отправляет все кроме style|public на
> index.php, тут же, все что не попадает под маску [A-Z][A-Za-z],
> отрабатывается как статика и отображается.
> Добавил
> location ~* "/\.(htaccess|htpasswd|xml|ini)$" {
> denyall;
> return  403;
> , но не работает.
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272943#msg-272943
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность valmon
что делать с "можно слить файлы конфигурации" - в принципе, странно, что вы

об этом думаете заранее.

А не зря, реврайт из модуля для апача отправляет все кроме style|public на
index.php, тут же, все что не попадает под маску [A-Z][A-Za-z],
отрабатывается как статика и отображается.
Добавил 
location ~* "/\.(htaccess|htpasswd|xml|ini)$" {
denyall;
return  403;
, но не работает.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272943#msg-272943

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-15 Пенетрантность Илья Шипицин
для настройки роутинга CMS общепринятая практика делать try_files,
например, так

https://book.cakephp.org/2.0/en/installation/url-rewriting.html

логика тут примерно, как вы написали "если файл существует, то отдать его,
если файла нет, или он с расширением php, то отправить на fastcgi"


что делать с "можно слить файлы конфигурации" - в принципе, странно, что вы
об этом думаете заранее. обычно, проблемы решаются по мере поступления ))

а) необязательно файлы конфигурации хранить внутри сайта

б) можно сделать вот так

location /config/ {
   return 404;
}

в) можно хранить конфигурацию в виде php (а не ini, yml), это, кстати,
самое выгодное в плане производительности. и такой файл (внутри которого
определены только переменные) слить не получится.

2017-03-15 1:49 GMT+05:00 valmon :

> В общем, получилась вот такая конструкция
> location / {
> root /home/admin/web/site.com/public_html;
> location ~ ^/[A-Z][A-Za-z]*. {
> if (!-e $request_filename) {
> rewrite ^/(.*)$ /core/Load.php?q=$1 last;
> }
> }
>
> location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
> expires max;
> }
> location ~ [^/]\.php(/|$) {
> fastcgi_param SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
> if (!-f $document_root$fastcgi_script_name) {
> return  404;
> }
>
> fastcgi_pass127.0.0.1:9000;
> fastcgi_index   index.php;
> include /etc/nginx/fastcgi_params;
> }
> }
>
> Но получается, что можно слить файлы конфигурации, так как  if (!-e
> $request_filename)
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272934#msg-272934
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-14 Пенетрантность valmon
В общем, получилась вот такая конструкция
location / {
root /home/admin/web/site.com/public_html;
location ~ ^/[A-Z][A-Za-z]*. {
if (!-e $request_filename) {
rewrite ^/(.*)$ /core/Load.php?q=$1 last;
}
}

location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
expires max;
}
location ~ [^/]\.php(/|$) {
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
if (!-f $document_root$fastcgi_script_name) {
return  404;
}

fastcgi_pass127.0.0.1:9000;
fastcgi_index   index.php;
include /etc/nginx/fastcgi_params;
}
}

Но получается, что можно слить файлы конфигурации, так как  if (!-e
$request_filename)

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272934#msg-272934

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-14 Пенетрантность valmon
Чтото не получается сделать рабочую регулярку /Invoce, /Invoce/* и /API/

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272933#msg-272933

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-14 Пенетрантность Илья Шипицин
args не затрагиваются. Со слешем или без - на ваше усмотрение

14 марта 2017 г. 19:42 пользователь "valmon" 
написал:

> Я так понимаю, работает только на /Invoce/, а если это конечный /Invoce,
> плюс передаем args?
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272931#msg-272931
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-14 Пенетрантность valmon
Я так понимаю, работает только на /Invoce/, а если это конечный /Invoce,
плюс передаем args?

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272931#msg-272931

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-14 Пенетрантность Илья Шипицин
location ~ ^/[A-Z][a-z]*./ {


...


}

14 марта 2017 г., 18:07 пользователь valmon 
написал:

> Это замечательно, вот только пример не могу найти, чтобы регулярные
> выражение действовали по условию первая в верхнем регистре, далее в нижнем
> любой длины.
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272928#msg-272928
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-14 Пенетрантность valmon
Это замечательно, вот только пример не могу найти, чтобы регулярные
выражение действовали по условию первая в верхнем регистре, далее в нижнем
любой длины.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272928#msg-272928

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-14 Пенетрантность Илья Шипицин
нет, не надо ничего добавлять.
да, конечно, вместо префиксных локейшенов можно использовать регулярные
выражения.

14 марта 2017 г., 16:54 пользователь valmon 
написал:

> Насколько я понял, он просто добавить к /Invoce /Invoce/index
> А есть какие либо регулярные выражения чтобы отфильтровать по первому
> символу в верхнем регистре?
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272926#msg-272926
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-14 Пенетрантность valmon
Насколько я понял, он просто добавить к /Invoce /Invoce/index
А есть какие либо регулярные выражения чтобы отфильтровать по первому
символу в верхнем регистре?

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,272923,272926#msg-272926

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Несколько CMS для разных URL

2017-03-14 Пенетрантность Илья Шипицин
Префиксные локейшены и try_files

14 марта 2017 г. 13:49 пользователь "valmon" 
написал:

> Коллеги, подскажите направление.
> Необходимо совместить работу двух cms на одном домене, первая cms
> самописный
> биллинг, урлы у которого начинаются с буквы в верхнем регистре, например
> /Invoce, /Clause, /Bonuses, /API/*, обработчик для которых является
> /Core/Load.php, вторая cms, modx, корень вообще хочу сделать статичным.
> Собственно, какие варианты?
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,272923,272923#msg-272923
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru