nginx proxy reverso para websockets com SSL

1

Estou tentando configurar o nginx (instalado via macports) na minha máquina de desenvolvimento osx. Eu estou tentando inverter proxy localhost: 12346 / trade para uma conexão websocket que está disponível na porta 12346 em / trade em uma máquina remota.

Estou usando o seguinte arquivo nginx.conf. Funciona quando a SEÇÃO SSL é comentada, mas o nginx não inicia corretamente quando não está comentado. Eu modelei o arquivo conf em outras perguntas e respostas aqui e em outros sites. Eu tentei de 20 maneiras diferentes, mas assim que eu descomente qualquer uma das linhas relacionadas ao SSL, o nginx não vai começar.

worker_processes  1;

events {
  worker_connections 20;
}

error_log /opt/local/etc/nginx/debug.log debug;

http {
  include       mime.types;
  default_type  application/octet-stream;

  #
  # Some default configuration.
  #
  sendfile           on;
  tcp_nopush         on;
  keepalive_timeout  65;

  #
  # A list with load balancing backends hashed on IP for sticky load balancing.
  #
  upstream backend {
    # ip_hash;

    server 123.456.78.90:12346;
  }

  server {
    listen       12346; # ssl used here when un-commented
    server_name  localhost;

    # SSL SECTION
    # ssl on;
    # ssl_certificate /opt/local/etc/nginx/server.crt;
    # ssl_certificate_key /opt/local/etc/nginx/server.key;
    # ssl_session_cache  builtin:1000  shared:SSL:10m;
    # 
    # ssl_session_timeout 5m;
    # ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    # ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    # ssl_prefer_server_ciphers   on;
    # END SSL SECTION

    #
    # Proxy settings
    #
    location /trade {
      proxy_pass http://backend/;
      proxy_redirect      off;
      proxy_set_header    Host              $host;
      proxy_set_header    X-Real-IP         $remote_addr;
      proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
      proxy_set_header    X-Forwarded-Proto $scheme;

      # WebSocket specific
      proxy_http_version 1.1;
      proxy_set_header    Upgrade           $http_upgrade;
      proxy_set_header    Connection        "upgrade";

      #
      # Specific for comet or long running HTTP requests, don't buffer up the
      # response from origin servers but send them directly to the client.
      #
      proxy_buffering     off;

      #
      # Bump the timeout's so someting sensible so our connections don't
      # disconnect automatically. We've set it to 12 hours.
      #
      proxy_connect_timeout 43200000;
      proxy_read_timeout    43200000;
      proxy_send_timeout    43200000;
    }
  }
}

Alguém consegue identificar o que estou fazendo errado?

    
por domoarigato 20.10.2014 / 15:59

1 resposta

2

Descobri isso. Com Macports você tem que instalar explicitamente o nginx com suporte a ssl usando sudo port install nginx +ssl Stupid, eu sei - por que você nunca o instalaria sem, e por que seu sinalizador iniciaria com + ...

    
por 21.10.2014 / 08:41