Saya sangat tersesat dan baru membangun NGINX sendiri tetapi saya ingin dapat mengaktifkan soket web yang aman tanpa memiliki lapisan tambahan.
Saya tidak ingin mengaktifkan SSL di server websocket itu sendiri tetapi saya ingin menggunakan NGINX untuk menambahkan lapisan SSL ke semuanya.
Setiap halaman web di luar sana mengatakan saya tidak bisa melakukannya, tetapi saya tahu saya bisa! Terima kasih kepada siapa pun (saya sendiri) yang bisa menunjukkan caranya!
proxy_read_timeout
berfungsi, saya mengedit jawabannya.location
Arahan diletakkan di dalamserver
ataulocation
arahan lain (lihat dokumen lokasi ).backend_host
adalahupstream
(lihat dokumen hulu ) - satu atau sekelompok server yang akan Anda proksi.Jangan takut, karena sekelompok Programer Ops yang gagah berani telah menyelesaikan situasi dengan merek baru nginx_tcp_proxy_module
Ditulis pada Agustus 2012, jadi jika Anda berasal dari masa depan, Anda harus mengerjakan pekerjaan rumah.
Prasyarat
Asumsikan Anda menggunakan CentOS:
init.d/nginx
skrip Anda )yum install pcre pcre-devel openssl openssl-devel
dan lib lainnya yang diperlukan untuk membangun NGINXBangun NGINX Baru Anda
Sekali lagi, asumsikan CentOS:
cd /usr/local/
wget 'http://nginx.org/download/nginx-1.2.1.tar.gz'
tar -xzvf nginx-1.2.1.tar.gz
cd nginx-1.2.1/
patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch
./configure --add-module=/path/to/nginx_tcp_proxy_module --with-http_ssl_module
(Anda dapat menambahkan lebih banyak modul jika Anda membutuhkannya)make
make install
Pilihan:
sudo /sbin/chkconfig nginx on
Setel Nginx
Ingatlah untuk menyalin file konfigurasi lama Anda terlebih dahulu jika Anda ingin menggunakannya kembali.
Penting: Anda perlu membuat
tcp {}
arahan di level tertinggi di conf Anda. Pastikan itu tidak ada dalamhttp {}
arahan Anda .Contoh konfigurasi di bawah ini menunjukkan server websocket hulu tunggal, dan dua proxy untuk SSL dan Non-SSL.
sumber
Ini bekerja untuk saya:
- dipinjam dari: https://github.com/nicokaiser/nginx-websocket-proxy/blob/df67cd92f71bfcb513b343beaa89cb33ab09fb05/simple-wss.conf
sumber
# WebSocket support
snipped melakukannya untuk saya. Saya sebelumnya mencoba untuk meneruskan port 400, tetapi bekerja lebih dari 443. Pembaca masa depan FYI :)untuk .net core 2.0 Nginx dengan SSL
Ini berhasil untuk saya
sumber
Bagi saya, itu turun ke
proxy_pass
pengaturan lokasi. Saya perlu mengubah menggunakan protokol HTTPS, dan mengatur sertifikat SSL yang valid di sisi server node hal. Dengan begitu ketika saya memperkenalkan server simpul eksternal, saya hanya perlu mengubah IP dan yang lainnya tetap konfigurasi yang sama.Saya harap ini membantu seseorang di sepanjang jalan ... Saya menatap masalah sepanjang waktu ... huh ...
sumber
localtion /horizon
, tetapi tidak berhasil. Hanyalocaltion /
ataulocation /websockify
berfungsi. Tidak tahu mengapa ...Artikel singkat dan bagus dari Pankaj Malhotra membahas bagaimana melakukan ini dengan NGINX dan tersedia di sini .
Konfigurasi dasar NGINX direproduksi di bawah ini:
sumber
Menggunakan nginx / 1.14.0
saya punya websocket-server yang berjalan di port 8097 dan pengguna terhubung dari ke wss di port 8098, nginx hanya mendekripsi konten dan meneruskannya ke server websocket
Jadi saya punya file konfigurasi ini (dalam kasus saya
/etc/nginx/conf.d/default.conf
)sumber