Настроить мультисайт на сервере nginx через IP, используя Digital Ocean

Проблема: Невозможно попасть на два сайта, которые обрабатываются на одном сервере nginx, т.е. <<ip-address>> & <<ip-address>>/web2

Конфигурация на Digital Ocean:

  1. 1 капля / Ubuntu 18 / LEMP
  2. У меня есть два тестовых сайта PHP в рамках CodeIgniter
  3. Конфигурация папки для 1-го сайта: /var/www/html/web1/
  4. Конфигурация папки для второго сайта: /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, я делаю это в соответствии с документацией, предоставленной сообществом в цифровом океане.

Пожалуйста помоги!

Благодарю.

-1

Решение

То, что вы пытаетесь сделать, это не то, как 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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]