nginx配置
server {
listen 80;
server_name xxxxx.xxx.com
root /opt/onemena/wwwroot/xxxxx/project.tt.money/public;
index index.php;
location = /index.php {
# Ensure that there is no such file named "not_exists"
# in your "public" directory.
try_files /not_exists @swoole;
}
# any php files must not be accessed
#location ~* \.php$ {
# return 404;
#}
location / {
try_files $uri $uri/ @swoole;
}
location @swoole {
set $suffix "";
if ($uri = /index.php) {
set $suffix ?$query_string;
}
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
#proxy_set_header SERVER_PORT $server_port;
#proxy_set_header REMOTE_ADDR $remote_addr;
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 Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# IF https
# proxy_set_header HTTPS "on";
proxy_pass http://127.0.0.1:1215$suffix;
}
}
php代码
protected function getClientIp($request){
$forwarded = $request->header('X-Forwarded-For');
$attr = explode(',',$forwarded);
$ip = $attr[0];
if(empty($ip)){
$str = $request->headers;
$reg = '|X-Forwarded-For:\s+?([^,]+)|';
if(preg_match($reg, $str,$matches)){
$ip = $matches[1];
}
}
return $ip;
}
网友评论