前面已经提高使用ocserv的原因之一就是它的安全性,它默认采用加密的连接。 而默认使用的端口是443(可以在配置文件当中修改成别的端口,由之而来的问题是客户端连接时需要指名端口好),和一般的web服务器使用的加密传输端口一致。
假设资源紧张不得已需要在一台机器上部署nginx以及ocserv服务,又不想给用户的体验造成影响(不加端口好访问)是不是两者不可兼得呢?
ocserv官方给出了使用haproxy的SNI解决方案。
简单来说就是nginx和ocserv使用两个不通的端口号而443端口给haproxy使用。
例如,ocserv使用9443,Web服务器使用8443.我们还假设Web服务器响应www.example.com,而vpn服务器响应vpn.example.com。这样便将流量重定向到适当服务器进行响应了。
配置文件如下
|
|
最后,为了让ocserv获取有关传入会话的信息,我们在haproxy的配置中启用了代理协议(使用send-proxy-v2
选项)。这要求ocserv的配置包含以下内容:
|
|
能避免共用端口还是尽量避免吧。