我不知道为什么使用nginx这个变量$ _SERVER ['REMOTE_ADDR']不会回显IP。在其他每个Web服务器上,它都可以正常工作。
有什么建议吗?
答案 0 :(得分:1)
我怀疑它与nginx(网络服务器)和fastcgi之间的接口有关,而fastcgi是运行PHP的API。
根据您提供的信息,服务器API为:FPM/FastCGI
我建议你仔细看看如何用nginx安装PHP的细节(你还没有提供)。
如果你不需要nginx的性能,那么你可能会发现一个实用的解决方案就是使用apache。我在apache之前使用nginx作为反向代理,但这引入了一些额外的问题,即将REMOTE_ADDR传递给PHP(特别是mod_rpaf)。
祝你好运!答案 1 :(得分:1)
@Michael,这是我维护的一个项目,它提供了适当的fastcgi参数,用于连接Nginx和FPM。希望它有所帮助。
答案 2 :(得分:0)
这些来自nginx的conf文件
用户http; worker_processes 1;
error_log /var/log/nginx/error.log; pid /var/run/nginx.pid;
活动{ worker_connections 1024; #ulti_accept on; }
http { 包括mime.types; default_type application / octet-stream; access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
服务器{ 听80; server_name www.fireangel.ro fireangel.ro; access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www/html/fireangel.ro/public_html;
index index.php;
}
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
root /var/www/html/fireangel.ro/public_html;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/fireangel.ro/public_html$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location ~ /\.ht {
deny all;
}
} 上游后端{ 服务器127.0.0.1:9000; }
}