够意思博客够意思博客够意思博客

EasySwoole中识别https和http请求

前言

用户请求是由nginx代理转发给swoole服务指定端口。


Nginx 配置

location ~ / {
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        proxy_set_header X-Real-IP $remote_addr;
        if (!-e $request_filename) {
             proxy_pass http://127.0.0.1:9501;
        }
        if (!-f $request_filename) {
             proxy_pass http://127.0.0.1:9501;
        }
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
        proxy_set_header Upgrade $http_upgrade;   # 升级协议头
        proxy_set_header Connection upgrade;
    }

这样子配置无论是http请求还是https请求,EasySwoole获取到的都是http,无法区分;

修改Nginx 配置

     #升级HTTPS
    set $http 0;
   if (!-f $request_filename) {
        set $http "${http}1";
    }
    if ($scheme = http ) { 
          set $http "${http}2";
    }
   #   if ($http = "012"){return 301 https://$host$request_uri;}
    location ~ / {
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        proxy_set_header X-Real-IP $remote_addr;
        if (!-e $request_filename) {
             proxy_pass http://127.0.0.1:9501;
        }
        if (!-f $request_filename) {
             proxy_pass http://127.0.0.1:9501;
        }
  
        proxy_redirect off;
        proxy_set_header http  $scheme;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
        proxy_set_header Upgrade $http_upgrade;   # 升级协议头
        proxy_set_header Connection upgrade;
    }

新增请求头参数 http(可自定义) 

proxy_set_header http  $scheme;

## 以上代码都是百度出来的

EasySwoole中获取http参数来识别http还是https

$this->getRealIp()




本文为够意思原创文章,转载无需和我联系,但请注明来自够意思博客blog.go1s.cn:够意思博客 » EasySwoole中识别https和http请求

加载中~