Я пытаюсь понять, почему субдомен, который я только что создал в Nginx, не использует корневую папку, указанную в его файле конфигурации. Ниже приведен файл конфигурации для поддомена zeta.
server {
listen 80;
root /var/www/zeta;
server_name zeto.mydomain.com;
error_log /var/log/nginx/subdomains_error.log;
error_page 404 /404.html;
if ($subdomain = ""){
set $subdomain something;
rewrite /.* /not_found;
}
location / {
index index.php index.html index.htm;
access_log /var/log/nginx/subdomains_access.log;
location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
access_log /var/log/nginx/subdomains_php_access.log;
}
location /public {
}
location ~ \.(js|ico|gif|jpg|png|css)$ {
}
location /not_found {
}
location /404.html {
internal;
}
}
}
У меня есть другой файл домена, который настроен на поддомен с подстановочными знаками и другую корневую папку, см. Ниже, это единственная разница
root /var/www/account;
server_name *.mydomain.com;
Есть текстовый файл в /etc/nginx
называются поддоменами. Файл perl читает список поддоменов и, если он существует, загружает страницу, в противном случае выдает ошибку. Я знаю, что мой файл поддомена с подстановочными знаками принимает дзета, поскольку он находится в текстовом файле поддоменов. Он настроен так, потому что сервер - это приложение, и когда посетители регистрируются, мы добавляем выбранный ими поддомен в файл и перезагружаем Nginx, не затрагивая пользователей, уже находящихся на сайте.
Какие изменения я могу внести в zeta-файл, чтобы он использовал /var/www/zeta
в качестве корневой папки, а не корневой папки в файле конфигурации с подстановочными знаками?
Спасибо
Если это копия вашей конфигурации nginx, ваша проблема здесь опечатка:
server_name zeto.mydomain.com;
... предположительно следует читать zeta
.