NGINX重定向非http(原始套接字)和http(Web浏览器)流量

时间:2017-06-08 11:27:05

标签: nginx

标题:NGINX重定向非http(原始套接字)和http(Web浏览器)流量

服务器既有来自原始套接字的非http请求,也有来自网络浏览器的来自端口443的http请求。想法是检查请求,并将非http请求传递到端口8086,将http请求传递到端口81。 这是我实施的想法:

http {
  ...
  server {
    listen       80;
    # ... Redirect to port 443
  }

  # HTTPS server
  server {
      listen       443 ssl;
      server_name  cims2.crysberg.com;

      ssl_certificate      cert_chain.crt;
      ssl_certificate_key  private.key;

      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;

      ssl_ciphers  HIGH:!aNULL:!MD5;
      ssl_prefer_server_ciphers  on;

      # The raw socket doesn't have user agent
      if( $http_user_agent = "") {
        ####################################
        ###   redirect location to /rawSocket
        ####################################
      }

      location / {
        #pass the request to apache server
        proxy_pass   http://127.0.0.1:81;            
      }

      location /rawSocket {
        proxy_pass   http://127.0.0.1:8068;
      }
  }
}

我的问题是:

  1. 我是否需要使用流{}来监听原始套接字通信 块?
  2. 如果对问题1的回答是肯定的,我可以同意吗? stream {}块侦听443上的原始套接字和服务器块侦听 到443的http请求?
  3. 我对工具的想法是否正确?我怎么能够 将原始套接字请求位置重定向到/ rawSocket?我试过了 “rewrite ^(。*)$ 1 / rawSocket; “并使用”openssl s_client进行测试 -connect xxx.com:443“。但它不起作用,因为原始Socket没有位置/标题。

0 个答案:

没有答案