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

Общая сессия для поддоменов для nginx

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

Здравствуйте.

Использую мультимагазин с поддоменами. Работает на FastCGI (nginx + PHP-FPM). Соответственно, .htaccess не используется, для обеспечения возможностей opencart и SEO - соответствующим образом настроенные конфиги поддоменов в nginx.

Купил очередной модуль, а там  в требованиях:

"если вы используете поддомены, установите для них одну сессию, для этого в .htaccess добавьте:
php_value session.cookie_domain .site.com"

Прошу подсказать как выполнить это требование для моего случая (что добавить в конфиг nginx)?

 

Пример используемого в поддоменах конфига:

server {
	server_name поддомен.мойсайт.ру www.поддомен.мойсайт.ру;
	charset UTF-8;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/поддомен.мойсайт.ру/*.conf;
	access_log /var/www/httpd-logs/поддомен.мойсайт.ру.access.log;
	error_log /var/www/httpd-logs/поддомен.мойсайт.ру.error.log notice;
	ssi on;
	set $root_path /var/www/директория_где_мультимагазин_лежит;
	root $root_path;
	listen 111.111.111.111:80;

	location / {
		return 301 https://поддомен.мойсайт.ру$request_uri;
	}
}

server {
	server_name www.поддомен.мойсайт.ру;
	ssl on;
	ssl_certificate "/var/cert/1111.crtca";
	ssl_certificate_key "/var/cert/1111.key";
	ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_dhparam /etc/certs/dhparam4096.pem;
	charset UTF-8;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/поддомен.мойсайт.ру/*.conf;
	access_log /www/logs/поддомен.мойсайт.ру.access.log;
	error_log /var/www/logs/поддомен.мойсайт.ру.error.log notice;
	ssi on;
	set $root_path /var/www/директория_где_мультимагазин_лежит;
	root $root_path;
	listen 111.111.111.111:443;

	location / {
		return 301 https://поддомен.мойсайт.ру$request_uri;
	}
}

server {
	server_name поддомен.мойсайт.ру;
	ssl on;
	ssl_certificate "/var/cert/поддомен.мойсайт.ру.crtca";
	ssl_certificate_key "/var/cert/поддомен.мойсайт.ру.key";
	ssl_ciphers EECDH:+ADS256:-3EDES:RSA+AES:!NULL:!RC4;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_dhparam /etc/certs/dhparam4096.pem;
	charset UTF-8;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/поддомен.мойсайт.ру/*.conf;
	access_log /var/www/httpd-logs/поддомен.мойсайт.ру.access.log;
	error_log /var/www/httpd-logs/поддомен.мойсайт.ру.error.log notice;
	ssi on;
	set $root_path /var/www/директория_где_поддомен_лежит;
	root $root_path;
	listen 111.111.111.111:443;

    location = /sitemap.xml {
    rewrite ^(.*)$ /index.php?route=feed/google_sitemap break; 
    } 
    
    location = /googlebase.xml {
    rewrite ^(.*)$ /index.php?route=feed/google_base break; 
    } 

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

	location / {
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @php;
		}
	try_files $uri $uri/ @opencart;
	}

	location @php {
		fastcgi_index index.php;
		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f aasq@mail.ru";
		fastcgi_pass unix:/var/www/php-fpm/advw.sock;
		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
		try_files $uri =404;
		include fastcgi_params;
	}
}

 

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Neuro75 сказал:

Здравствуйте.

Использую мультимагазин с поддоменами. Работает на FastCGI (nginx + PHP-FPM). Соответственно, .htaccess не используется, для обеспечения возможностей opencart и SEO - соответствующим образом настроенные конфиги поддоменов в nginx.

Купил очередной модуль, а там  в требованиях:

"если вы используете поддомены, установите для них одну сессию, для этого в .htaccess добавьте:
php_value session.cookie_domain .site.com"

Прошу подсказать как выполнить это требование для моего случая (что добавить в конфиг nginx)?

 

Пример используемого в поддоменах конфига:


server {
	server_name поддомен.мойсайт.ру www.поддомен.мойсайт.ру;
	charset UTF-8;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/поддомен.мойсайт.ру/*.conf;
	access_log /var/www/httpd-logs/поддомен.мойсайт.ру.access.log;
	error_log /var/www/httpd-logs/поддомен.мойсайт.ру.error.log notice;
	ssi on;
	set $root_path /var/www/директория_где_мультимагазин_лежит;
	root $root_path;
	listen 111.111.111.111:80;

	location / {
		return 301 https://поддомен.мойсайт.ру$request_uri;
	}
}

server {
	server_name www.поддомен.мойсайт.ру;
	ssl on;
	ssl_certificate "/var/cert/1111.crtca";
	ssl_certificate_key "/var/cert/1111.key";
	ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_dhparam /etc/certs/dhparam4096.pem;
	charset UTF-8;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/поддомен.мойсайт.ру/*.conf;
	access_log /www/logs/поддомен.мойсайт.ру.access.log;
	error_log /var/www/logs/поддомен.мойсайт.ру.error.log notice;
	ssi on;
	set $root_path /var/www/директория_где_мультимагазин_лежит;
	root $root_path;
	listen 111.111.111.111:443;

	location / {
		return 301 https://поддомен.мойсайт.ру$request_uri;
	}
}

server {
	server_name поддомен.мойсайт.ру;
	ssl on;
	ssl_certificate "/var/cert/поддомен.мойсайт.ру.crtca";
	ssl_certificate_key "/var/cert/поддомен.мойсайт.ру.key";
	ssl_ciphers EECDH:+ADS256:-3EDES:RSA+AES:!NULL:!RC4;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_dhparam /etc/certs/dhparam4096.pem;
	charset UTF-8;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/поддомен.мойсайт.ру/*.conf;
	access_log /var/www/httpd-logs/поддомен.мойсайт.ру.access.log;
	error_log /var/www/httpd-logs/поддомен.мойсайт.ру.error.log notice;
	ssi on;
	set $root_path /var/www/директория_где_поддомен_лежит;
	root $root_path;
	listen 111.111.111.111:443;

    location = /sitemap.xml {
    rewrite ^(.*)$ /index.php?route=feed/google_sitemap break; 
    } 
    
    location = /googlebase.xml {
    rewrite ^(.*)$ /index.php?route=feed/google_base break; 
    } 

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

	location / {
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @php;
		}
	try_files $uri $uri/ @opencart;
	}

	location @php {
		fastcgi_index index.php;
		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f aasq@mail.ru";
		fastcgi_pass unix:/var/www/php-fpm/advw.sock;
		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
		try_files $uri =404;
		include fastcgi_params;
	}
}

 

Посмотрите https://serverfault.com/questions/755507/how-to-set-php-value-session-cookie-domain-in-nginx-config

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


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

лучше установить эту переменную в конфиге php.ini, где ей и место, и не парить nginx всякой непотребностью.

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


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, nikifalex сказал:

лучше установить эту переменную в конфиге php.ini, где ей и место, и не парить nginx всякой непотребностью.

Все верно, найдите ваш php.ini файл (например /etc/php/7.1/fpm).

В нем установите значение 

session.cookie_domain = ".example.com"

Затем сделайте рестарт php.

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


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

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

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

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

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

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

Войти

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

Войти

  • Последние посетители   0 пользователей онлайн

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

×

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

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