Как настроить собственное имя локального домена для приложения 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, но это не сработало по понятным причинам.