如何为类似laravel valet的Node应用程序设置自定义本地域名?

ippsafx7  于 2023-01-01  发布在  Node.js
关注(0)|答案(3)|浏览(99)

我使用Laravel valet作为我的本地服务器,它接受我的项目文件夹名,并将其作为本地域名,所以如果我创建一个名为test-website的文件夹,我现在可以在浏览器中通过访问test-website. test来访问它。
启动一个节点应用程序,我可以在浏览器中访问该应用程序的唯一方法是进入localhost::3000。这很好,它可以工作,但我更喜欢一个自定义域名,如new-node-app. test。有没有办法做到这一点,甚至更好,有没有任何程序可以像Laravel代客泊车自动化这一点?

y0u0uwnf

y0u0uwnf1#

假设您希望您的域名为node.test,您必须在~/.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
    }
}

资料来源:代客Github:是否可以共享运行在端口3000上的node.js程序

gudnpqoy

gudnpqoy2#

好吧其实我自己也算出来了...哈哈
所以在hosts文件中我添加了:

127.0.0.1:80 nodeapp.localhost

去那个地址工作,似乎不与我的Laravel代客域名冲突.
要注意的是,我确实尝试使用扩展名。test,这是我用于Laravel代客网站,但没有工作的明显原因。

ztyzrc3y

ztyzrc3y3#

您可以使用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删除代理

相关问题