Проблема: Невозможно попасть на два сайта, которые обрабатываются на одном сервере nginx, т.е. <<ip-address>>
& <<ip-address>>/web2
Конфигурация на Digital Ocean:
/var/www/html/web1/
/var/www/html/web2/
Конфигурация Nginx Server Block для двух сайтов
web1.com
server {
listen 80;
root /var/www/html/web1;
index index.php index.html index.htm index.nginx-debian.html;
server_name <<ip-address>>;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
web2.com
server {
listen 80;
root /var/www/html/web2;
index index.php index.html index.htm index.nginx-debian.html;
server_name <<ip-address>>/web2;
location /web2/ {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Я совершенно новичок в nginx server, я делаю это в соответствии с документацией, предоставленной сообществом в цифровом океане.
Пожалуйста помоги!
Благодарю.
То, что вы пытаетесь сделать, это не то, как nginx работает из коробки. Это может, с большим трудом, в конечном итоге работать таким образом, но я не думаю, что оно того стоит.
Видите, конфигурация nginx ожидает server_name
быть либо полным доменным именем (полным доменным именем), либо IP-адресом, но не полным URL-адресом с путем.
В вашем случае запрос на ip-адрес / web2, вероятно, фактически соответствует конфигурации web1 (поэтому указывает на /var/www/html/web1/web2/
который не существует)
Лучший способ решить эту проблему (при условии, что вы хотите сохранить оба сайта в одной и той же капле): получить полное доменное имя для каждого сайта. Это может быть поддомен для домена, который у вас уже есть (например, web1.sharad.com и web2.sharad.com) … Затем в каждом из конфигурационных файлов nginx используйте соответствующее имя сервера (web1.sharad.com и web2.sharad). .com), проверьте на наличие опечаток и ошибок с sudo nginx -t
и если все в порядке, перезапустите nginx с sudo systemctl restart nginx
Других решений пока нет …