Jump to content
покупайте без комиссии
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


Recommended Posts

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

Использую мультимагазин с поддоменами. Работает на 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;
	}
}

 

Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites
3 часа назад, nikifalex сказал:

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

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

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

session.cookie_domain = ".example.com"

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.