Как настроить собственное имя локального домена для приложения Node, похожего на laravel valet?

Я использую Laravel valet в качестве локального сервера, и он берет имена папок моего проекта и использует их в качестве локальных доменных имен. Поэтому, если я создаю папку с именем test-website, я могу получить к ней доступ в браузере, перейдя в test-website.test.

При запуске приложения узла единственный способ получить доступ к приложению в браузере - перейти на localhost::3000. Это нормально и работает, но я бы предпочел собственное доменное имя, например, new-node-app.test. Есть ли способ сделать это и даже лучше, есть ли какая-нибудь программа, которая может автоматизировать это, как это делает Laravel Valet?

3 ответа

Вы можете использовать Laravel Valet для создания прокси.

      valet proxy [--secure] [--] <domain> <host>

так что вы могли бы сделать что-то вроде этого, чтобы сделатьhttps://node.testработать, как ожидалось.

      valet proxy --secure node.test http://127.0.0.1:3000

Примечание: прокси перенаправляют запросы к существующей службе. Так что не указывайте свой прокси наhttps://127.0.0.1:3000если вы уже не обслуживаете https.

Работает и с поддоменами. Поэтому, если вы используете сервер сокетов, вы можете предпочесть использовать поддоменioили что-то.

      valet proxy --secure io.mydomain.test http://127.0.0.1:3000

чтобы убедиться, что у вас правильная конфигурация. Вы можете перечислить прокси, используяvalet proxiesили удалить прокси с помощьюvalet unproxy

Скажем, вы хотите, чтобы ваше доменное имя было node.test. Вам необходимо создать файл с именем node.conf в ~/.valet/Nginx.

node.conf:

      map $sent_http_content_type $expires {
    "text/html"                 epoch;
    "text/html; charset=utf-8"  epoch;
    default                     off;
}

server {
    listen          80;             # the port nginx is listening on
    server_name     node.test;    # setup your domain here

    gzip            on;
    gzip_types      text/plain application/xml text/css application/javascript;
    gzip_min_length 1000;

    location / {
        expires $expires;

        proxy_redirect                      off;
        proxy_set_header Host               $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_read_timeout          1m;
        proxy_connect_timeout       1m;
        proxy_pass                          http://127.0.0.1:3000; # set the adress of the Node.js instance here
    }
}

источник: Valet Github: можно ли поделиться программой node.js, работающей на порту 3000

Хорошо, я на самом деле просто решил это сам... ха-ха

Итак, в файле hosts я добавил:

127.0.0.1:80 nodeapp.localhost

Переход по этому адресу работает и не конфликтует с моими доменами Laravel Valet.

Отметим, что я попробовал использовать расширение.test, которое я использую для веб-сайтов Laravel Valet, но это не сработало по понятным причинам.

Другие вопросы по тегам