我有一个Nginx网络服务器,我正在一个docker容器中运行它。我遇到的问题是nginx access.log中的所有客户端IP地址都是172.19.0.1,即容器的网关。我希望显示给nginx的IP地址是客户端的真实IP地址。
我尝试了一些解决方案,包括
-
使用Nginx
realip
单元
set_real_ip_from 172.19.0.1;
real_ip_header X-Real-IP;
real_ip_recursive on;
仍然记录了网关ip
-
将端口设置为
host
网络模式,这是无效的,因为我在macOS上,它只在Linux上受支持。
我使用的dockerfile看起来是这样的
version: "3"
services:
nginx:
container_name: nginx
ports:
- target: 80
published: 80
- target: 443
published: 443
volumes:
# [my volumes]
restart: unless-stopped
image: nginx