V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kenshin912  ›  全部回复第 2 页 / 共 10 页
回复总数  187
1  2  3  4  5  6  7  8  9  10  
@basefas #7 开发没几个会用 Docker 啊 , 线上环境也不是 Docker , 我也很苦恼 .
@JerryCha #2

@Vegetable #3

@chenluo0429 #4

感谢 , 用了 yarn , 并且编译前设置了 yarn --cache-folder , 把缓存目录放到编译目录以外的地方 , 应该就可以了吧?
@hteen #1 感谢 , 你发的链接 , 让我注意到了 spug 的 node example , 我在 walle 上用 yarn 成功的编译出 dist .
2021-05-25 14:10:03 +08:00
回复了 secretman 创建的主题 问与答 快 30 岁了,还有机会增高吗?
别听楼上那些
女装可破
2021-04-29 09:10:21 +08:00
回复了 inhd 创建的主题 音乐 孙燕姿 变成 冷门歌手 🤔️
马桶区现在这种弱智发言太多了,不像很多年前了都讲究干货。
2021-01-22 20:30:16 +08:00
回复了 zocome 创建的主题 问与答 目前 2000 的 5500XT 值不值得入手
显卡市场确实太魔幻了
我去年年中在某宝弄了个 蓝宝石 RX 574 矿卡,400+ RMB 。
这两天看了看咸鱼已经 700+ 了,合着我这是买了理财产品呢!
@shynome #15
@muzuiget #17
@privil #19

感谢各位的帮助,问题已经解决。
参考链接:
https://stackoverflow.com/questions/47537954/how-to-make-docker-container-see-real-user-ip
https://stackoverflow.com/a/61263768

首先将 openresty 所在 network 对应的网卡接口调整到 internal 区域
执行完这个命令后重启防火墙, 访问 openresty 会报 no route to host 的错误
接着执行后三条命令即可。

firewall-cmd --zone=internal --change-interface=br-e9d63ecbe9c7 --permanent
firewall-cmd --reload
sysctl net.bridge.bridge-nf-call-iptables=0
sysctl net.bridge.bridge-nf-call-arptables=0
sysctl net.bridge.bridge-nf-call-ip6tables=0
当个分母?
@privil 我关闭转发后 openresty 的 log 显示拿到了正确的 Client IP,但是访问站点却抛出了 502,看 error_log 显示 no route to host 172.19.0.2 之类的错误
但是还是无法解决我的问题,毕竟站点挂了。
@muzuiget #17 打印过 $_SERVER , 整个看了一圈确实是来自于 Docker 的 Gateway 。
不过刚才 15 楼提醒了我,docker-compose 起的是可以直接拿到客户端 IP 的不应该有问题。
我登录了一台阿里云 HK 的节点,观察了这台服务器上同样是 docker-compose 起的 openresty,log 里面的 IP 是正常的没有问题。
结合之前我操作 firewall-cmd --zone=public --remove-masquerade 以后,log 里面的 IP 就正常了,但是 openresty 会找不到 php:9000 来看,应该还是服务器配置或者防火墙有问题。

所以,你开始的结论应该是正确的,不是 docker 的问题。
只是我现在还是不知道到底哪里出了问题,只好再去一个个排查一下。
@shynome #15 我真的用的是 docker compose 起的服务啊
openresty 的 log 也都只能拿到 172.19.0.1 这种 Gateway 的地址,我一直很纳闷。
之前我在 Docker Swarm 里面遇到过这种问题,不过当时没来得及解决。
现在我只是拿 docker-compose 起了个测试环境而已,还是这种问题,我也好郁闷。

系统环境是 Cent OS 8.2,docker 版本是 Docker version 19.03.13, build 4484c46d9d
@shynome #13 大佬,我已经修改了 docker-compose.yaml

```
build:
context: ./service/openresty
ports:
- { mode: host, protocol: tcp, target: 80, published: 80 }
- { mode: host, protocol: tcp, target: 443, published: 443 }
```

但是没有任何效果
endpoint_mode: dnsrr 这个我添加后是无法启动的,提示:
Unsupported config option for services.openresty: 'endpoint_mode'
@shynome 我没有启动 Swarm,直接 docker compose up -d 启动的,也需要设定副本数量嘛
@shynome 好的,谢谢大佬我去试试看
@SingeeKing #5 好吧,谢谢大佬,研究一下 traefik 的用法去...
@SingeeKing #3 感谢
--net=host 请问是加在哪里呢?
我之前 Google 到的解决方案中有建议将 openresty 的网络修改为 host 模式,我在 openresty 的 ports 那里定义过但是似乎不起作用,如果定义为 networks_mode: host,则 openresty 无法启动,因为 openresty 的配置文件中定义了 fastcgi_pass php:9000 , openresty 不在 frontend 网络中,找不到 php:9000 ...

网络上还有办法就是安装 traefik,然后手动追加一个 X-Real-IP 到 headers 里面,看了下挺麻烦心态也有点崩,所以只好跑 V2EX 来问问各位大佬们有没有什么办法了 https://i.v2ex.co/FJ3A9q18.png
@oott123 #1 就是 docker inspect ${Container} 看到的 Gateway

就这里了
我这边看到的 Client IP 一直是这个 Gateway 的地址

```
"NetworkID": "e9d63ecbe9c731c56c4279be95fe1f04501ec9adb0f7b42ffd91bfc5f157664b",
"EndpointID": "491a05c9061f5464ec29f17bd28feda572ab3db5723f3f078a250747a8c1fe57",
"Gateway": "172.19.0.1",
"IPAddress": "172.19.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:13:00:03",
"DriverOpts": null
```
2020-07-22 15:36:21 +08:00
回复了 lwp2070809 创建的主题 程序员 求一个安全的 RDP 内网穿透方案
我之前的解决方案是 NAT 出去的 , 不过工作时间只允许内网地址连接 3389 , 其他时间允许任意地址连接 3389 , 不过非工作时间默认是关机状态 , 需要先唤醒电脑再连接.
唤醒是通过映射一台服务器的 UDP 9 端口出去做的. 机器需要 MAC 地址绑定. 否则可能唤醒失败.
2020-07-18 14:32:11 +08:00
回复了 kenshin912 创建的主题 Docker 求教 Docker Swarm 的正确使用姿势
@xiaodim #4 感谢分享 , 我仔细想一下
2020-07-18 09:54:44 +08:00
回复了 kenshin912 创建的主题 Docker 求教 Docker Swarm 的正确使用姿势
@xiaodim #2 没有把 PHP 和 Nginx 放同一个镜像中 , 分开的.
我是想把 PHP 代码丢 PHP 镜像中 , 前端代码丢 Nginx 镜像中 , 这样即使 PHP 代码更新 , 我也不需要更新 Nginx 镜像.
1  2  3  4  5  6  7  8  9  10  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5512 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 07:56 · PVG 15:56 · LAX 00:56 · JFK 03:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.