反向代理无法访问laravelS

反向代理无法访问laravelS
我在php容器中安装laravels,开启服务在5200端口,容器内访问没有问题,
现在我通过nginx反向代理配置让访问80时宿主机通过nginx转发到php容器,我的nginx配置如下下

upstream swoole {
    server 172.21.0.5:5200 weight=5 max_fails=3 fail_timeout=30s;
    keepalive 16;
}

server {
    listen 80;
    listen [::]:80;
    server_name localhost;
    root /www/laravel/public/;
    index index.php index.html;

    location / {
        try_files $uri @laravels;
    }

    location @laravels {
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_pass http://swoole;
    }
}

其中172.21.0.5是我php容器的ip地址

反向代理无法访问laravelS

但是我nginx访问之后给我报错

反向代理无法访问laravelS

提示的是连接拒绝,我想可能ip直接访问的方式可能有问题,所以我php容器又映射了5200端口到宿主机

反向代理无法访问laravelS
然后我把直接访问容器ip改为127.0.0.1

反向代理无法访问laravelS
然后重启nginx

反向代理无法访问laravelS
发现127.0.0.1映射端口也给拒绝了,这该怎么办呢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

大哥们我解决了,是因为laravels服务监听默认是127.0.0.1,要改配置的,所以外部访问不了就是因为这个原因

2年前 评论
讨论数量: 11

你这样请求的是公网ip

2年前 评论
aab

host.docker.internal 可以解决在docker内部访问宿主机的问题

2年前 评论

因为你的服务只监听在127.0.0.1上

2年前 评论

和反向代理无关吧,首先得能容器外访问容器,容器的端口是怎么映射的?

2年前 评论
晏南风 (楼主) 2年前
php_yt (作者) 2年前

看你贴的报错,我猜nginx跟php-fpm不是在同一个容器网络下吧

如果是这样,nginx只能通过主机ip来访问php-fpm服务了

如果要通主机ip来访问容器服务,主机端口和容器端口需要做下映射

下面是启动容器映射端口的例子,8000是主机端口,8080是容器端口

docker container run --publish 8000:8080 --detach --name bb bulletinboard:1.0

这样很很麻烦

更简单的做法

nginx和php-fpm在同一容器网络之下,直接可以通过容器名访问

2年前 评论

大哥们我解决了,是因为laravels服务监听默认是127.0.0.1,要改配置的,所以外部访问不了就是因为这个原因

2年前 评论

了解下0.0.0.0127.0.0.1的区别。

2年前 评论
晏南风 (楼主) 2年前

proxy_pass swoole; 这个配置好像也不对吧

2年前 评论

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