@ironheaddd

Как прописать динамический root в nginx?

Есть конфиг nginx, который в целом работает,
server {
	listen 		80;

	server_name 	~^(?<subdomain>.+)\.domain\.com;
	add_header	Content-Type text/plain;
	index		index.php;

	root		/var/www/sites/$subdomain;

	access_log	/var/log/nginx/access.log;
	error_log	/var/log/nginx/error.log;

	location / {
		try_files $uri $uri/ /index.php$is_args$args;
	}

	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
	}

	location = /favicon.ico { log_not_found off; access_log off; }
	location = /robots.txt { log_not_found off; access_log off; allow all; }
	location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
		expires max;
		log_not_found off;
	}
}


но для того, чтобы работало вообще все, по пути /var/www/sites/$subdomain мне нужно переименовать порядка 80 папок из формата $subdomain.domain.com в просто $subdomain (досталось в наследство), руками лень, скрипты писать не умею, в связи с чем и возникает вопрос: как правильно прописать root /var/www/sites/$subdomain;? Если я прописываю его как root /var/www/sites/$subdomain.domain.com;, то сабдомены не открываются.
PS: если подскажете еще и по динамическому созданию лог-файлов отдельно для каждого сабдомена - буду рад и благодарен.
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rst0
@Rst0
server_name *.domain.com;
root /var/www/sites/$http_host;

sub.domain.com
будет искать папку
/var/www/sites/sub.domain.com
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы