Bagaimana untuk mengkonfigurasi port pemajuan soket Nginx

PHPz
Lepaskan: 2023-05-24 11:37:06
ke hadapan
2554 orang telah melayarinya

Senario biasa untuk port soket pemajuan nginx: aplikasi pembelajaran dalam talian, sebagai tambahan kepada fungsi biasa, tambah fungsi bilik sembang, pilih swoole sebagai penyedia perkhidmatan untuk bahagian belakang, dan tidak mahu bahagian hadapan memaut terus ke perkhidmatan melalui ip:port, jadi anda perlu menggunakan nginx ke hadapan.

Dalam keadaan biasa, kami boleh terus mewujudkan pautan soket pada halaman pengguna, tetapi operasi sedemikian akan mendedahkan port dan membawa risiko keselamatan tertentu Menggunakan nginx untuk pemajuan boleh menyembunyikan port. Masalah tambahan ialah beberapa parameter pengepala juga perlu dibawa ke penyedia perkhidmatan soket semasa proses pemajuan yang lain hanya memerlukan nginx untuk mengendalikan penukaran daripada protokol biasa kepada soket web.

Antaranya, "upgrade" ialah pengepala hop-by-hop dan tidak boleh dimajukan daripada klien ke pelayan proksi Melalui proksi pemajuan, klien boleh menggunakan kaedah sambungan untuk mengelakkan masalah ini. Walau bagaimanapun, ini tidak berfungsi dengan proksi terbalik kerana pelanggan tidak mengetahui mana-mana pelayan proksi dan memerlukan pengendalian khas pada pelayan proksi. Pada masa yang sama, pengepala lompat demi lompat yang mengandungi "naik taraf" dan "sambungan" tidak boleh diluluskan, jadi anda perlu membawa dua parameter ini apabila menukar kepada soket web: Contohnya:

location /chat/ {
  proxy_pass http://backend;
  proxy_http_version 1.1;
  proxy_set_header upgrade $http_upgrade;
  proxy_set_header connection "upgrade";
}
Salin selepas log masuk

Lanjutan: ke hadapan kepada pelayan proksi" Nilai medan pengepala "sambungan" bergantung pada nilai medan "naik taraf" pengepala permintaan klien. Contohnya:

http {
  map $http_upgrade $connection_upgrade {
    default upgrade;
    ''   close;
  }

  server {
    ...

    location /chat/ {
      proxy_pass http://backend;
      proxy_http_version 1.1;
      proxy_set_header upgrade $http_upgrade;
      proxy_set_header connection $connection_upgrade;
    }
  }
Salin selepas log masuk

Nota: http://backend dalam contoh ialah sekumpulan pelayan seimbang beban Jika hanya terdapat satu pelayan, ia boleh ditulis sebagai proxy_pass http://127.0.0.1 :9501; Selain itu, secara lalai, pautan yang tidak menghantar sebarang data dalam masa 60 saat akan ditutup, yang boleh dilanjutkan menggunakan arahan proxy_read_timeout. Atau pelayan proksi boleh dikonfigurasikan untuk menghantar bingkai ping secara berkala untuk menetapkan semula tamat masa dan menyemak sama ada pautan tersedia.

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi port pemajuan soket Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!