Всем доброго времени суток. Решили попробовать новую, стильную, модную, молодёжную технологию "Композитный сайт". Настроили nginx по . Вот такой конфиг получился:
* - url и ip были заменены умышленно
Дополнительно из-за необходимости перенаправления URL с mysite.ru на был изменён стандартный .htaccess:
В итоге при авторизации (публичная часть сайта) авторизация проходит успешно (появляется админ. панель), но после следующего обновления\перезагрузки страницы, авторизация слетает. Причём судя по пустой папке /var/www/user/data/www/mysite.ru/cache и пустой (кроме конфиг файлов) папке /bitrix/html_pages композитный режим не заработал. Помогите пожалуйста, очень уж заманчивая технология.
| Код |
|---|
server {
server_name mysite.ru www.mysite.ru;
listen 8.8.8.8;
listen 8.8.8.8:443;
charset utf8;
# default path to cache file
set $test_file "bitrix/html_pages/$host$uri/index@$args.html";
set $storedAuth "";
set $usecache "";
# check user auth
if ( $cookie_BITRIX_SM_LOGIN != "" ) { set $storedAuth "A"; }
if ( $cookie_BITRIX_SM_UIDH != "" ) { set $storedAuth "${storedAuth}B"; }
if ( $cookie_BITRIX_SM_CC != "Y" ) { set $storedAuth "${storedAuth}C"; }
# check all conditions for enable composite
if ( $http_bx_action_type = "" ) { set $usecache "A"; }
if ( $request_method = "GET" ) { set $usecache "${usecache}B"; }
if ( $cookie_BITRIX_SM_NCC = "" ) { set $usecache "${usecache}C"; }
if ( $http_x_forwarded_scheme !~ "https" ){ set $usecache "${usecache}D"; }
if ( $storedAuth !~ "ABC" ) { set $usecache "${usecache}E"; }
## cache location
location ~* @.*\.html$ {
internal;
root /var/www/user/data/www/mysite.ru/cache;
}
location / {
root /var/www/user/data/www/mysite.ru;
proxy_pass http://8.8.8.8:81;
proxy_redirect http://8.8.8.8:81/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
if ( -f "$document_root/$test_file" ) { set $usecache "${usecache}F"; }
if ($usecache = "ABCDEF" ){ rewrite .* /$test_file last; }
gzip_min_length 1100;
}
location ~* ^(.*)\.php$ {
root /var/www/user/data/www/mysite.ru;
set $test_file "bitrix/html_pages/$host$1@$args.html";
if ( -f "$document_root/$test_file" ) { set $usecache "${usecache}F"; }
if ($usecache = "ABCDEF" ){ rewrite .* /$test_file last; }
proxy_pass http://www.mysite.ru:81;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root /var/www/user/data/www/mysite.ru;
access_log /var/www/nginx-logs/user isp;
access_log /var/www/httpd-logs/mysite.ru.access.log ;
error_page 404 = @fallback;
}
location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
proxy_pass http://8.8.8.8:81;
proxy_redirect http://8.8.8.8:81/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
location @fallback {
proxy_pass http://8.8.8.8:81;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
include /usr/local/ispmgr/etc/nginx.inc;
ssl_certificate /var/www/httpd-cert/user/mysite.ru.crt;
ssl_certificate_key /var/www/httpd-cert/user/mysite.ru.key;
} |
Дополнительно из-за необходимости перенаправления URL с mysite.ru на был изменён стандартный .htaccess:
| Код |
|---|
Options -Indexes
ErrorDocument 404 /404.php
<IfModule mod_php5.c>
php_flag allow_call_time_pass_reference 1
php_flag session.use_trans_sid off
#php_value display_errors 1
#php_value mbstring.func_overload 2
#php_value mbstring.internal_encoding UTF-8
</IfModule>
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.mysite.ru
RewriteRule (.*) http://www.mysite.ru/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/jpeg "access plus 3 day"
ExpiresByType image/gif "access plus 3 day"
ExpiresByType image/png "access plus 3 day"
ExpiresByType text/css "access plus 3 day"
ExpiresByType application/javascript "access plus 3 day"
</IfModule>
|
В итоге при авторизации (публичная часть сайта) авторизация проходит успешно (появляется админ. панель), но после следующего обновления\перезагрузки страницы, авторизация слетает. Причём судя по пустой папке /var/www/user/data/www/mysite.ru/cache и пустой (кроме конфиг файлов) папке /bitrix/html_pages композитный режим не заработал. Помогите пожалуйста, очень уж заманчивая технология.
Разработка сайтов на 1С-Битрикс