ฉันสงสัยเกี่ยวกับความแตกต่างของประสิทธิภาพ ความปลอดภัย และความสามารถในการปรับขนาดสำหรับ nginx และ ssh tunnel สำหรับเว็บแอปพลิเคชัน
สำหรับกรณีของฉัน ฉันได้ตั้งค่า VPS ซึ่งมีหน้าที่เพียงส่งต่อการรับส่งข้อมูลไปยังเราเตอร์ที่บ้านของฉัน ทราฟฟิกนี้เดินทางระหว่าง 2 เซิร์ฟเวอร์ที่ไม่ได้เข้ารหัส (HTTP) และฉันคิดว่าการใช้อุโมงค์ SSH สำหรับกรณีนี้จะง่ายกว่า แทนที่จะต้องตั้งค่า HTTPS สองครั้ง
ฉันไม่สามารถหาข้อมูลออนไลน์จำนวนมากเปรียบเทียบทั้งสองได้ บางคนกล่าวว่าอุโมงค์ SSH เป็นการตั้งค่า "ถูก" และ "สกปรก" หรือไม่
ฉันรู้ว่าพวกเขาทำสิ่งต่างๆ มากมายเพื่อจุดประสงค์ที่แตกต่างกัน แต่ในกรณีง่ายๆ นี้ ฉันไม่คิดว่าจำเป็นต้องใช้ nginx
สำหรับคำชี้แจงระหว่างทั้งสอง:
งินซ์:
VPS (ยอมรับ HTTPS, ส่งต่อ HTTP) â โฮมเซิร์ฟเวอร์ (ยอมรับ HTTP)
# การกำหนดค่าเซิร์ฟเวอร์ VPS
เซิร์ฟเวอร์ {
ฟัง 443 ssl;
server_name โดเมน.คอม;
เปิด ssl;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # จัดการโดย Certbot
ที่ตั้ง /.well-known {
รูท /var/www/ssl/domain/;
}
ที่ตั้ง / {
proxy_pass http://95.245.xxx.xxx:80;
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ 'อัปเกรด';
proxy_set_header โฮสต์ $host;
proxy_cache_bypass $http_upgrade;
real_ip_header X-Real-IP;
real_ip_recursive บน;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
}
}
อุโมงค์ SSH:
VPS (ยอมรับ HTTPS ส่งต่อผ่าน SSH Tunnel) â โฮมเซิร์ฟเวอร์ (ยอมรับ SSH)
สิ่งนี้ต้องการ nginx ในการจัดการ SSL
#จากวปส
ssh -A -t -g -N -L 80:localhost:80 [email protected] -o ServerAliveInterval=30
บางทีการทำ Tunneling HTTPS เองอาจได้ผล โดยลบการใช้ nginx บน VPS ออกทั้งหมด แต่สิ่งนี้สร้างความปลอดภัยสองชั้น ซึ่งอาจทำให้ช้าลง (?)
#จากวปส
ssh -A -t -g -N -L 443:localhost:443 [email protected] -o ServerAliveInterval=30
เท่าที่ฉันรู้ ฉันคิดว่า SSH ง่ายกว่าและปลอดภัยในการตั้งค่า แต่จะเร็วกว่าไหม มันปรับขนาดได้ดีแค่ไหน (ขนาดตามปริมาณการใช้งานที่เพิ่มขึ้น) เมื่อเทียบกับ nginx