Laravel 维护模式 --allow ip 不起作用

Vic*_*rdb 2 maintenance maintenance-mode laravel laravel-5.7 laravel-artisan

我试图在 vps 上通过 laravel 中的维护模式允许我的公共互联网 IP。

--allow命令是通过 Internet 工作还是仅在本地主机上工作?因为我无法使用以下命令通过维护模式页面:

$ php artisan down --allow=xx.xx.xx.xx (my public internet ip)
Application is now in maintenance mode.
$ php artisan up
Application is now live.
Run Code Online (Sandbox Code Playgroud)

cba*_*ier 8

您可以验证您的应用程序看到的 IP 地址并允许它:

Route::get('/what-is-my-ip', function(){ 
    return request()->ip();
});
Run Code Online (Sandbox Code Playgroud)

但请注意,如果您支持内容交付网络服务,例如cloudflare,您将看到服务的 IP,而不是用户。这意味着,每个人都将拥有相同的 IP。

使用例如Cloudflare,您可以通过在public/index.php

<?php

if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
Run Code Online (Sandbox Code Playgroud)

更多解释的来源:https : //laracasts.com/discuss/channels/laravel/cloudflare-and-user-ip

  • 只是要小心,盲目信任任何设置“HTTP_CF_CONNECTING_IP”标头的人。您可能想研究 Laravel 的信任代理选项。 (2认同)