访问 laradock 服务器内部 http 服务器

<?php
//表明服务器启动后监听本地9588端口
$server = new Swoole_http_server('127.0.0.1',9588);

//服务器启动时返回响应
$server->on('start', function($server){
    echo "Swoole http server is started at http://127.0.0.1:9588\n";
}); 
//向服务器发送请求时返回响应
//可以获取请求参数,也可以设置响应头和响应内容
$server->on("request", function($request, $response){
    $response->header("Content-Type", "text/plain");
    $response->end("Hello World\n");
});
//启动HTTP服务器
$server->start();

在laradock中创建了一个http服务器之后,在workspace容器中,通curl 127.0.0.1:9588,可以返回hello world。但是在本地,通过浏览器访问127.0.0.1:9588之后,无法访问。要解决该问题 ,在建立http服务器的时候,监听的地址不是127.0.0.1而是laradock中workspace容器的地址。
通过:ip addr查看。

访问laradock服务器内部http服务器
然后将http服务器监听的ip地址修改为172.19.0.3。
另外还要在docker-compose.yml中添加端口映射。
找到workspace,在下面的prots下面添加一行
9588:9588(容器:客户端)。之后重新docker-compose build workspace后重启workspace之后,就能在本地访问laradock中的http服务器了。
访问laradock服务器内部http服务器

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

我也遇到同样的问题,感谢你的文章解决了我的问题。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!