是否可以配置 nginx 来仅处理 SSL?

是否可以配置 nginx 来仅处理 SSL?

我已经有一个用 C++ 编写的 Web 服务器,但它使用的是没有 SSL 的 TCP 套接字。我想将它连接到 Web,但我想使用类似 nginx 的东西来处理 SSL,以及像 DDOS 保护、smurf 攻击保护等基本安全措施。

我的问题是,我可以设置 nginx 来处理安全 SSL 连接,并将未加密的 http 流量转发到我的 Web 服务器(在同一台机器上)吗?

我觉得这可能是设置我的应用程序通过 FastCGI 与 nginx 交互的一个更简单的替代方法。

(还有什么建议,欢迎提出)

答案1

是的,这是可能的。

  1. 让你的软件监听本地环回独自一人,例如在localhost:8080

  2. 终止TLS使用 NGINX。

    server { 
        listen 443 ssl; 
        server_name www.example.com;
        ssl_certificate www.example.com.crt;
        ssl_certificate_key www.example.com.key; 
        ssl_protocols TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!MD5; 
        #... 
    }
    
  3. 作为最佳实践,将 HTTP 重定向到 HTTPS 并启用高速传输系统用于客户端升级到加密连接。

    server { 
        listen 80;
        server_name example.com;
        return 301 https://example.com$request_uri; 
    }
    
    server { 
        listen 443 ssl;
        #... 
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        #...
    }
    
  4. 配置 NGINX 为反向代理例如

        location / { 
            proxy_pass http://localhost:8080/; 
        }
    

相关内容