Laravel Forge - доступ к приложению по голому IP вместо доменного имени - PullRequest
1 голос
/ 29 января 2020

У меня есть приложение laravel на производстве (используется Laravel Forge и капля Digital Ocean).

Я могу получить доступ к приложению через www.domain.com, но если я попробую с IP-адрес сервера Я получаю 404 (nginx).

Как мне получить доступ к приложению с IP-адресом?

Большое спасибо за помощь

РЕДАКТИРОВАТЬ :

Вот мой Nginx конфиг на Laravel Кузница:

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name domain.com;
    root /home/forge/domain.com/public;
    ...
}

Ответы [ 2 ]

3 голосов
/ 29 января 2020

Это происходит потому, что nginx ищет блок конфигурации, содержащий default_server, когда не удается найти соответствующий домен. Вы можете удалить тег default_server по умолчанию (/etc/nginx/enabled-sites/default) и переместить его в конфигурацию для сайта, который вы хотите отобразить по умолчанию:

server {
    listen      80 default_server;
    server_name example.net www.example.net;
    ...
}

ваш серверный блок с обновленным default_server:

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2;
    server_name domain.com;
    root /home/forge/domain.com/public;
    ...
}

Обязательно отредактируйте конфигурацию по умолчанию для удаления тега default_server перед перезапуском nginx, нельзя иметь два блока конфигурации с default_server. Конфиг можно проверить с помощью nginx -t

дополнительную информацию можно найти в nginx документации

1 голос
/ 29 января 2020

Зачем вам нужен доступ к вашему серверу с голого ip?

Nginx возвращает 404, поскольку он не может найти запрошенный домен на вашем сервере.

Если вы посмотрите на свой структура папок папка вашего проекта соответствует домену вашего сайта. Он перенаправляет вас в нужную папку на основе вашего доменного имени.

Вы можете создать проект по умолчанию, который будет показывать вам что-то вроде phpinfo () при запросе через ip

...