我已经有一个用 C++ 编写的 Web 服务器,但它使用的是没有 SSL 的 TCP 套接字。我想将它连接到 Web,但我想使用类似 nginx 的东西来处理 SSL,以及像 DDOS 保护、smurf 攻击保护等基本安全措施。
我的问题是,我可以设置 nginx 来处理安全 SSL 连接,并将未加密的 http 流量转发到我的 Web 服务器(在同一台机器上)吗?
我觉得这可能是设置我的应用程序通过 FastCGI 与 nginx 交互的一个更简单的替代方法。
(还有什么建议,欢迎提出)
答案1
是的,这是可能的。
让你的软件监听本地环回独自一人,例如在
localhost:8080
。终止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; #... }
作为最佳实践,将 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; #... }
配置 NGINX 为反向代理例如
location / { proxy_pass http://localhost:8080/; }