Nginx 代理与 ssh 隧道的性能、安全性和可扩展性

Nginx 代理与 ssh 隧道的性能、安全性和可扩展性

我想知道 nginx 和 ssh 隧道对于 Web 应用程序的性能、安全性和可扩展性的差异。

就我的情况而言,我设置了一个 VPS,它的唯一作用是将流量转发到我的家庭路由器。此流量在 2 个服务器之间以未加密 (HTTP) 的方式传输,我认为在这种情况下使用 SSH 隧道会更容易,而不必设置两次 HTTPS。

我在网上找不到太多关于两者比较的信息。有人说 SSH 隧道是一种“廉价”且“肮脏”的设置?

我知道他们为了不同的目的做了很多不同的事情,但在这个简单的情况下,我认为 nginx 不是必需的。


为了澄清两者之间的区别:

Nginx的:

VPS (Accepts HTTPS, forwards HTTP) → Home server (Accepts HTTP)
# VPS Server configuration
server {
    listen 443 ssl;

    server_name domain.com;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot


    location /.well-known {
        root /var/www/ssl/domain/;
    }

    location / {
        proxy_pass http://95.245.xxx.xxx:80;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        real_ip_header X-Real-IP;
        real_ip_recursive on;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

SSH 隧道:

VPS (Accepts HTTPS, forwards through SSH Tunnel) → Home server (Accepts SSH)

这需要 nginx 进行 SSL 处理

# From the VPS
ssh -A -t -g -N -L 80:localhost:80 [email protected] -o ServerAliveInterval=30

也许隧道 HTTPS 本身可以起作用,从而完全消除 VPS 上 nginx 的使用,但这会产生双层安全性,可能会减慢速度(?)

# From the VPS
ssh -A -t -g -N -L 443:localhost:443 [email protected] -o ServerAliveInterval=30

据我所知,我认为 SSH 更易于设置且更安全,但它是否更快?与 nginx 相比,它的扩展性如何(扩展性,即流量增加)?

相关内容