Skip to content

反向代理

cola edited this page Jul 15, 2021 · 2 revisions

Nginx

server {
    root /www/wwwroot/;
    server_name local.SSPanelSubcribe.com;
    location /link {
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:9501;

    }
}

使用反代后请修改配置文件中 'LISTEN_ADDRESS' => '0.0.0.0' 改为 'LISTEN_ADDRESS' => '127.0.0.1'

获取反代后真实IP方法

App/HttpController/Links.php#L352

public function getRemoteIP(): string
 {/*
     $info = ServerManager::getInstance()
         ->getSwooleServer()
         ->connection_info(
             $this->request()->getSwooleRequest()->fd
         );
     return $info['remote_ip'];*/
     return $this->request()->getHeaders()['x-real-ip'][0];
 }

使用Cloudflare获取真实IP方法

location /link {
    set_real_ip_from 103.21.244.0/22;
    set_real_ip_from 103.22.200.0/22;
    set_real_ip_from 103.31.4.0/22;
    set_real_ip_from 104.16.0.0/12;
    set_real_ip_from 108.162.192.0/18;
    set_real_ip_from 131.0.72.0/22;
    set_real_ip_from 141.101.64.0/18;
    set_real_ip_from 162.158.0.0/15;
    set_real_ip_from 172.64.0.0/13;
    set_real_ip_from 173.245.48.0/20;
    set_real_ip_from 188.114.96.0/20;
    set_real_ip_from 190.93.240.0/20;
    set_real_ip_from 197.234.240.0/22;
    set_real_ip_from 198.41.128.0/17;
    set_real_ip_from 199.27.128.0/21;
    set_real_ip_from 2400:cb00::/32;
    set_real_ip_from 2606:4700::/32;
    set_real_ip_from 2803:f800::/32;
    set_real_ip_from 2405:b500::/32;
    set_real_ip_from 2405:8100::/32;
    set_real_ip_from 2c0f:f248::/32;
    set_real_ip_from 2a06:98c0::/29;
    real_ip_header CF-Connecting-IP;
    proxy_http_version 1.1;
    proxy_set_header Connection "keep-alive";
    proxy_set_header X-Real-IP $remote_addr; #here
    proxy_pass http://127.0.0.1:9501;
}
Clone this wiki locally