Anda dapat memeriksa posting blog saya tentang konfigurasi Nginx sebagai proxy terbalik untuk Tomcat . Ini mungkin menarik bagi Anda, sebagai contoh menyertakan beberapa penyesuaian tambahan sebagai konten caching hanya untuk pengguna yang tidak masuk dan mengarahkan ulang untuk bahasa yang berbeda.
Vladimir Grichina
Jawaban:
17
Untuk nginx checkout dokumen mereka di sini . Dukungan proxy sudah ada di dalamnya.
Dalam contoh di bawah ini dari situs mereka, Anda akan melihat bahwa lalu lintas port 80 spesifik sedang dikirim ke wadah servlet tunggal yang berjalan di port 8080.
Perhatikan bahwa jika Anda ingin menjalankan beberapa kontainer servge backend (untuk penyeimbangan beban, penskalaan, dll ...) Anda harus melihat Modul Upstream Fair yang akan mengirimkan lalu lintas ke server backend yang paling tidak sibuk. Ini tidak dikirim oleh defaul dengan nginx.
Saya juga telah mengujinya juga dengan / myapp alih-alih root dan berfungsi juga, menempatkan lokasi / myapp dan proxypass http: // myapp: 8080 / myapp ;
Juga, konfigurasi ini memetakan semuanya ke aplikasi Java, yang berguna ketika Anda memiliki URL bagus yang dipetakan oleh kerangka kerja MVC seperti Struts.
Anda tidak harus menggunakan mod_jk, Anda dapat menggunakan mod_proxy, yaitu melewati lalu lintas melalui HTTP, bukan AJP. Jika nginx memiliki kemampuan proksi, itu seharusnya bekerja dengan baik.
Masalah dengan proxy adalah bahwa itu lebih lambat dari mod_jk / fastcgi / ajp
Adam Gent
2
Sekarang ada ajp_module yang cukup segar untuk nginx . Saya tidak punya pengalaman dengan itu, tapi saya pikir lengket sesi dan terutama koneksi backend yang persisten cukup membantu untuk Tomcat. Kedua metode (proksi http atau proksi ajp) sayangnya tidak fleksibel untuk permintaan yang berjalan lama (komet) atau transfer file besar (unggahan).
lighttpd BTW memiliki modul proxy umum yang dapat menangani pengkodean FCGI, HTTP, CGIS, dan AJP13. Ini terlihat seperti pendekatan yang lebih baik (tapi saya pikir dari membacanya memiliki keterbatasan yang sama sehubungan dengan pola permintaan / respons panjang / besar yang tidak khas).
Jawaban:
Untuk nginx checkout dokumen mereka di sini . Dukungan proxy sudah ada di dalamnya.
Dalam contoh di bawah ini dari situs mereka, Anda akan melihat bahwa lalu lintas port 80 spesifik sedang dikirim ke wadah servlet tunggal yang berjalan di port 8080.
Perhatikan bahwa jika Anda ingin menjalankan beberapa kontainer servge backend (untuk penyeimbangan beban, penskalaan, dll ...) Anda harus melihat Modul Upstream Fair yang akan mengirimkan lalu lintas ke server backend yang paling tidak sibuk. Ini tidak dikirim oleh defaul dengan nginx.
sumber
Cara lain untuk melakukannya seperti dijelaskan di halaman wiki LikeApache .
Saya juga telah mengujinya juga dengan / myapp alih-alih root dan berfungsi juga, menempatkan lokasi / myapp dan proxypass http: // myapp: 8080 / myapp ;
Juga, konfigurasi ini memetakan semuanya ke aplikasi Java, yang berguna ketika Anda memiliki URL bagus yang dipetakan oleh kerangka kerja MVC seperti Struts.
sumber
Anda tidak harus menggunakan mod_jk, Anda dapat menggunakan mod_proxy, yaitu melewati lalu lintas melalui HTTP, bukan AJP. Jika nginx memiliki kemampuan proksi, itu seharusnya bekerja dengan baik.
sumber
Sekarang ada ajp_module yang cukup segar untuk nginx . Saya tidak punya pengalaman dengan itu, tapi saya pikir lengket sesi dan terutama koneksi backend yang persisten cukup membantu untuk Tomcat. Kedua metode (proksi http atau proksi ajp) sayangnya tidak fleksibel untuk permintaan yang berjalan lama (komet) atau transfer file besar (unggahan).
https://github.com/yaoweibin/nginx_ajp_module#readme
lighttpd BTW memiliki modul proxy umum yang dapat menangani pengkodean FCGI, HTTP, CGIS, dan AJP13. Ini terlihat seperti pendekatan yang lebih baik (tapi saya pikir dari membacanya memiliki keterbatasan yang sama sehubungan dengan pola permintaan / respons panjang / besar yang tidak khas).
http://redmine.lighttpd.net/wiki/1/Docs:ModProxyCore
sumber