Untuk meneruskan lalu lintas ke JBoss / TomCat pada port 80 menggunakan Apache kami biasa menginstal dan mengkonfigurasi mod_jk
.
Apakah ada yang setara dengan nginx? Pada dasarnya ingin semua lalu lintas port 80 diteruskan ke JBoss.
Untuk meneruskan lalu lintas ke JBoss / TomCat pada port 80 menggunakan Apache kami biasa menginstal dan mengkonfigurasi mod_jk
.
Apakah ada yang setara dengan nginx? Pada dasarnya ingin semua lalu lintas port 80 diteruskan ke JBoss.
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.
server {
listen 80;
server_name YOUR_DOMAIN;
root /PATH/TO/YOUR/WEB/APPLICATION;
location / {
index index.jsp;
}
location ~ \.do$ {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ~ \.jsp$ {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ^~/servlets/* {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
Cara lain untuk melakukannya seperti dijelaskan di halaman wiki LikeApache .
server {
listen myhost:80;
server_name myhost;
location / {
root /path/to/myapp/public;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://myapp:8080;
}
}
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.
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).