Laravel Forge - 通过裸 IP 而不是域名访问应用程序
Posted
技术标签:
【中文标题】Laravel Forge - 通过裸 IP 而不是域名访问应用程序【英文标题】:Laravel Forge - access app by naked IP instead of domain name 【发布时间】:2020-05-14 20:31:24 【问题描述】:我有一个用于生产的 laravel 应用程序(使用 Laravel Forge 和 Digital Ocean droplet)。
我可以通过 www.domain.com 访问该应用,但如果我尝试使用服务器的 IP,我会得到 404 (nginx)。
如何使用 IP 地址访问应用程序?
非常感谢您的帮助
编辑:
这是我在 Laravel Forge 上的 Nginx 配置:
server
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name domain.com;
root /home/forge/domain.com/public;
...
【问题讨论】:
【参考方案1】:这是因为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;
...
重启nginx之前一定要编辑默认配置去掉default_server
标签,default_server
不允许有两个配置块。可以使用nginx -t
验证配置
更多信息请访问nginx documentation
【讨论】:
好的,谢谢。那么我应该在 IP 地址中添加哪一行? (对不起,我不是很擅长 nginx 配置...) 无需添加 IP 地址,只需在您提供的服务器块中的第一个listen 443 ssl http2
后附加 default_server
即可。 @chartalex
你用systemctl reload nginx
@chartalex重启nginx了吗
很遗憾没有:(【参考方案2】:
你为什么要从裸 ip 访问你的服务器?
Nginx 返回 404,因为它在您的服务器上找不到请求的域。
如果您查看文件夹结构,您的项目文件夹对应于您的站点域。它会根据您的域名将您重定向到正确的文件夹。
您可以创建一个默认项目,以便在通过 ip 请求时向您显示 phpinfo() 之类的内容
【讨论】:
例如,当您的注册商出于任何原因暂停您的域时(我的情况...)以上是关于Laravel Forge - 通过裸 IP 而不是域名访问应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Forge - Node.js Websocket 超时
我正在通过Laravel Forge建立数据库,并且很难连接到它。正在关注Laracast教程[保留]
TaskQueue.php 错误 - Laravel 5 & Forge