Сисадмины, выручайте.
Ubuntu 20 nginx + php-fpm 7.4
Целый день пытаюсь разобраться почему это работает так, а не иначе.
У меня к VPS привязан от хостера домен:
https://vm2888385.33ssd.had.wf/
Так же я прикрутил свой и через записи А перенаправил на IP сервера:
https://vladislav.in/
Установил nginx и пыху и настроил хости для второй ссылки.
Мне нужно поддомен еще в отдельной папке. Значит нужно еще один конфиг файл создать, сделал, все открывает сайт тоже:
https://files.vladislav.in/
И получается какая ситуация:
1. Заходим на сайта
https://vm2888385.33ssd.had.wf/ - nginx открывает папку для files.vladislav.in
2. Заходим на
https://vladislav.in/ - всё ок, открывает папку vladislav.in
3. Заходим на
https://files.vladislav.in/ всё ок открывает свою папку
4. Заходим на
https://213.166.70.205/ открывает папку для files.vladislav.in
Почему по умолчанию он ведет на поддомен ? И как это исправить.
Ниже прикрепляю конфиги:
/etc/nginx/conf.d/default.conf
spoiler
server {
listen 80;
server_name _;
location / {
root /var/www/html;
index index.php index.html index.htm;
}
}
/etc/nginx/sites-available/default
spoiler
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
/etc/nginx/sites-available/vladislav.in.conf
spoiler
server {
charset utf-8;
client_max_body_size 128M;
listen vladislav.in:443 ssl;
#listen [::]:80 default_server ipv6only=on;
ssl_certificate /etc/letsencrypt/live/vladislav.in/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vladislav.in/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/vladislav.in/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 127.0.0.1 8.8.8.8;
server_name vladislav.in;
root /var/www/vladislav.in;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
error_page 404 /404.html;
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ /\.(ht|svn|git) {
deny all;
}
}
/etc/nginx/sites-available/files.vladislav.in.conf
spoiler
server {
charset utf-8;
client_max_body_size 128M;
listen files.vladislav.in:443 ssl;
#listen [::]:80 default_server ipv6only=on;
ssl_certificate /etc/letsencrypt/live/files.vladislav.in/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/files.vladislav.in/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/files.vladislav.in/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 127.0.0.1 8.8.8.8;
server_name files.vladislav.in;
root /var/www/files.vladislav.in;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
error_page 404 /404.html;
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ /\.(ht|svn|git) {
deny all;
}
}
Symlink на папку site-enabled созданы для последних трех конфигов.
Как сделать чтобы при открытии IP или домена от хостера открывался сайт из папки /var/www/html
Да и в принципе в любом случае, если у домена или поддомена нету своего конфига то должно открываться дефолтная страница, до тех пор пока ему я не создам конфиг.
Для удобства восприятия я в папке /var/www/html добавил index.html с текстом
Welcome to nginx
А в папку /var/www/files.vladislav.in в файле index.html там
folder files.vladislav.in