为什么laradock环境获取客户端IP都是容器的ip
目前获取到的全是容器的ip:172.19.0.1,当前nginx的配置。目前获取到的全是容器的ip:172.19.0.1,当前nginx的配置。
获取命令客户端ip命令是laravel自带的
$request->ip();
$request->ips();
$request->getClientIp();
$request->getClientIps();
获取到的全是容器的ip
server {
listen 80;
listen [::]:80;
# For https
# listen 443 ssl;
# listen [::]:443 ssl ipv6only=on;
# ssl_certificate /etc/nginx/ssl/default.crt;
# ssl_certificate_key /etc/nginx/ssl/default.key;
server_name yzc.test;
root /var/www/yzc/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/laravel_error.log;
access_log /var/log/nginx/laravel_access.log;
}
你执行的环境和获取IP的命令是什么,描述清楚一些
因为你的应用运行在容器环境内,返回的是容器的IP 这是正常的啊,laradock.io/help/#i-get-mysql-conn...
用server获取,
HTTP_X_FORWARDED_FOR
这个参数试试