如何使用相同的域名在同一个IP:端口上运行nginx和ocserv?就像使用SSTP协议可以实现类似的事情一样,如果我没有弄错的话。我正在使用Ubuntu 20.04。
发布于 2023-05-02 01:58:53
您最可能要做的就是将Nginx配置为侦听HTTPS端口,并将其配置为代理到运行在不同本地端口上的ocserv进程。Nginx需要决定要服务哪个站点,并且为了区别它,可以选择以下两种方法:
主人将是最好的方法。在该配置中,您可以将两个DNS条目配置为指向同一个IP地址。Nginx配置看起来如下所示:
server {
# SSL configuration
#
listen 443 ssl default_server;
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
server_name web.yourdomain.com;
location ~ / {
root /var/www/html/blank/;
try_files $uri $uri/ =404;
allow all;
}
}
server {
# SSL configuration
#
listen 443;
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name vpn.yourdomain.com;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 120s;
proxy_read_timeout 600s;
proxy_pass http://127.0.0.1:1234/;
}
}在这种配置中,从外部可以通过相同的IP/端口(HTTPS/443)获得这两个服务。它们使用不同的DNS主机名(web.yourdomain.com和vpn.yourdomain.com),它们都指向同一个IP。在本例中,ocserv进程将侦听本地端口1234。
https://serverfault.com/questions/1130124
复制相似问题