您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
https在反向代理環境下获取真实ip(基於workerman實現)
发布时间:2022-01-14 23:01:50编辑:雪饮阅读()
上篇講到了ws也可以在反向代理環境下獲取真實訪問者的ip,那麽https自然也是不在話下了
nginx:
listen 443 ssl;
ssl_certificate /www/wwwroot/workerman/ssl.crt;
ssl_certificate_key /www/wwwroot/workerman/ssl.key;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
location /https
{
proxy_pass http://127.0.0.1:8282;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
# 这部分是利用http头透传真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
}
实现脚本:
<?php
use Workerman\Protocols\Http\Request;
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('http://0.0.0.0:8282');
// 客户端连上来时,即完成TCP三次握手后的回调
$worker->onConnect = function(TcpConnection $connection) {
var_dump("sd:".$_SERVER['HTTP_X_REAL_IP']);
$connection->onMessage=function(TcpConnection $connection,Request $request){
$headers = $request->header();
$connection->send($headers["x-real-ip"]);
};
};
Worker::runAll();
访问如:
https://www.cece220807.com/https
关键字词:workerman,https,反向代理,ip
相关文章
- 基於workerman實現ws获取真實客戶端ip(反向代理環境下)
- workerman系列之nginx配置反向代理于workerman時候實
- workerman系列之tp5(thinkphp5)日志结合workerman使用
- workerman常见问题-php的几种回调写法-类的静态方法作
- workerman常见问题-php的几种回调写法-类方法作为回调
- workerman常见问题-php的几种回调写法-普通函数回调
- workerman作爲客戶端系列之socket5即s5代理搭建基於ce
- workerman作爲客戶端系列之http代理搭建
- workerman作爲客戶端-作爲ws或wss客戶端-做為ws客戶端
- workerman創建https服務(普通請求轉https請求,基於寶塔