环境描述
ocserv是部署到Centos7上的,nginx与ocserv在不同主机,现需要通过nginx使用域名+端口的形式代理ocserv服务。
ocserv与nginx均已经配置完成,现通过配置完成代理需求
服务 | IP | 端口 |
---|---|---|
nginx | 192.168.2.124 | 180 |
ocserv | 192.168.2.123 | 12321 |
Ocserv配置
nginx域名:www.vpntest.com
HTTP方式
ocserv配置
修改ocserv的配置文件,找到以下配置,并进行更改
vim /etc/ocserv/ocserv.conf
找到default-domain,将其对应项改为要访问的域名
找到listen-proxy-proto,配置为True
找到proxy-url,配置访问的域名加端口
更改完成后,保存配置,重启ocserv服务
systemctl restart ocserv
nginx配置
前提条件,nginx需要有stream模块
如果没有的话,直接到nginx解压目录,添加stream模块,重新编译安装一下即可,例如
./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www --with-stream
make -j $( grep processor /proc/cpuinfo | wc -l) ; make install
拥有stream之后,开始配置nginx代理ocserv端口,编辑nginx配置文件,在内容最后添加
stream{
upstream vpn {
hash $remote_addr;
server 192.168.2.123:12321 max_fails=0; #ocserv服务地址
}
server {
listen 180; #nginx监听端口
proxy_protocol on;
proxy_connect_timeout 60s;
proxy_timeout 36000s;
proxy_pass vpn;
}
}
更改完成后保存配置,重载或者重启nginx
/usr/local/nginx/sbin/nginx -s reload
客户端连接测试
HTTPS方式
首先nginx配置ssl,可以通过https方式访问
快速配置nginx的ssl可转到==>nginx快速配置自签SSL域名证书<==查看。
ocserv配置
编辑ocserv配置文件
vim /etc/ocserv/ocserv.conf
找到proxy-url,配置访问的域名加端口
将原来的访问url加上个s即可
nginx配置
不需要做任何变更
客户端连接测试
注:如果域名不合法,也就是自签证书,需要在客户端中将配置勾消掉