Meneruskan permintaan dari Apache ke Payara Server 5 di Ubuntu

Dalam seri artikel ini, kami akan mencoba memberikan ikhtisar tentang dasar-dasar penggunaan Payara Server dalam produksi menggunakan Apache Web Server (httpd) dan Ubuntu. Banyak konsep tidak bergantung pada alat yang kami gunakan di sini dan dapat diterapkan ke skenario lain.


Tujuan kami adalah mengonfigurasi yang berikut:

gambar

Di sini kami memiliki server web Apache yang akan tersedia untuk pengguna kami. Permintaan mereka akan dikirim ke salah satu dari dua contoh server Payara. Di sini kita melihat menggunakan sesi "perekatan" berbasis cookie JSESSIONID untuk memastikan bahwa setiap pengguna berinteraksi dengan server Payara yang sama, serta replikasi sesi, untuk memastikan bahwa jika satu server Payara gagal, yang lain dapat menangani sesi yang ada tidak masalah


Kami berasumsi bahwa server web Apache sudah diinstal dan dikonfigurasi. Langkah kami selanjutnya adalah mengonfigurasi penerusan permintaan untuk mengirim lalu lintas ke Server Payara.


Apa itu penerusan permintaan?


Penerusan permintaan (atau proxy) adalah ketika server yang menerima lalu lintas web mengirimkannya ke tujuan lain. Mereka dapat digunakan untuk menyembunyikan lokasi asli pengguna, bukan untuk melihat sistem internal atau untuk mengontrol kinerja. Seperti kebanyakan server web, server web Apache dapat dilengkapi dengan modul yang memungkinkannya meneruskan permintaan ke server dan mengirim respons melalui proxy. Ini berarti bahwa Anda dapat menggunakan Apache sebagai perantara, yang menghilangkan kebutuhan untuk menentukan nomor port atau alamat IP yang tepat dan memungkinkan pengguna untuk menerima tanggapan dari server yang sama (alih-alih mengklik localhost dan memiliki bilah alamat berlabel localhost : 8080 )


Konfigurasikan penerusan permintaan antara server web Apache dan server Payara


Dalam posting ini, kita akan melihat paket yang tersedia di repositori Ubuntu. Paket Ubuntu berisi binari Apache, tetapi juga memiliki "alat pembantu" tambahan untuk mengelola file konfigurasi. Di Ubuntu 18, dua modul yang perlu kita tambahkan ke Apache adalah bagian dari paket apache2 yang kita instal sebelumnya. Itu dapat diinstal dari repositori menggunakan:

sudo apt install apache2 

Perhatikan bahwa sebelum Ubuntu 16.04 Anda harus menggunakan "apt-get" alih-alih "apt".

Kami akan memasang dua modul untuk mengaktifkan penerusan dasar permintaan http - mod_proxy dan mod_proxy_http. Di Ubuntu, alat bantu mengendalikan pemasangan modul-modul ini - untuk membuatnya lebih mudah, alat akan mencari dependensi mereka dan memasukkannya. Berguna mod_proxy_http membutuhkan mod_proxy untuk berfungsi, yang berarti tim kami terlihat seperti ini:

 sudo a2enmod proxy_http 

Perhatikan bahwa dalam perintah ini kita dapat menghilangkan awalan "mod_"


gambar


Jika Anda ingin menonaktifkan modul, ada alat bantu untuk a2enmod yang disebut a2dismod, yang digunakan dengan cara yang sama. Alat mendeteksi ketergantungan dan juga termasuk mod_proxy. Jika Anda memiliki beberapa modul yang ingin Anda aktifkan, Anda dapat menambahkannya setelah proxy_http, memisahkannya dengan spasi ...


Kami akan me-restart server nanti, karena kami juga perlu mengubah konfigurasi.


Paket apache2 di Ubuntu memiliki contoh konfigurasi situs yang disebut "000-default". File konfigurasi untuk situs ini terletak di folder / etc / apache2 / sites-available dan berisi tautan simbolik ke folder yang didukung situs.


Struktur file konfigurasi Apache


Sebagai aturan, Anda akan melihat bahwa manual Internet merujuk ke httpd.conf sebagai file konfigurasi untuk mengedit. Ini hanya file konfigurasi default "induk". Pada sistem Debian / Ubuntu (dan turunannya, seperti Linux Mint), file pencariannya adalah apache2.conf.


File ini dibaca, dan arahannya diterapkan dari atas ke bawah, jadi jika dua nilai berbeda ditetapkan untuk properti yang sama, yang kedua akan diterapkan. (Lebih tepatnya, yang pertama akan diterapkan hanya sampai parameter kedua dibaca).


File ini juga dapat secara khusus "memasukkan" file dan folder (perhatikan bahwa wildcard juga berfungsi). Mereka akan dibaca dan dikombinasikan dengan konfigurasi utama di tempat di mana "termasuk" ditulis. Dengan demikian, baris terakhir dalam file konfigurasi utama (jika tidak menentukan file lain) akan menjadi baris terakhir dari konfigurasi yang akan diinstal, apa pun yang terjadi.


Halaman default di instalasi Apache baru di Ubuntu ada di /var/www/index.html dan memberikan gambaran yang baik tentang bagaimana ini bekerja secara detail.


Membuat konfigurasi situs baru


Kami tidak akan menggunakan konfigurasi default karena kami perlu menambahkan perilaku tertentu. Salin konfigurasi lama dari situs yang tersedia dan ganti namanya menjadi sesuatu yang mudah diingat.


 sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/payara-site.conf 

Buka file baru di editor teks pilihan Anda sebagai root. Anda harus melihat sesuatu seperti ini:


gambar

Elemen ini berisi serangkaian arahan yang memberi tahu server cara merespons permintaan masuk yang terdaftar. Dalam contoh ini, <VirtualHost *: 80> memproses semua respons yang diterima oleh server melalui port 80. Untuk deskripsi yang lebih rinci tentang tag VirtualHost, lihat dokumentasi Apache.

Kita perlu menambahkan dua baris di tag untuk memberi tahu Apache bagaimana menangani lalu lintas masuk dan keluar - satu untuk memberi tahu Apache ke mana harus mengirim permintaan, dan yang lainnya untuk memberi tahu Apache dari mana jawaban itu berasal. Dengan cara ini, pengguna yang mengunjungi localhost dapat dialihkan ke server aplikasi kami di localhost : 8080 /, dan tanggapan diarahkan ke localhost : 8080 / sebaliknya diarahkan, sehingga pengguna melihat mereka datang dari localhost .

Untuk mengontrol lalu lintas masuk, tambahkan baris:


 ProxyPass / http://localhost:8080/ 

Arahan ini memberi tahu Apache untuk mengirim semuanya setelah nama domain server ke localhost : 8080 /, seolah-olah pengguna langsung menuju ke URL ini.

  ProxyPassReverse / http://localhost:8080/ 

Arahan ini memberi tahu Apache URL pengembalian proxy sehingga meskipun respons dikembalikan dari instance Server Payara ke port 8080, URL tersebut sepertinya diterima dari Apache. Dua arahan ini, ketika digunakan bersama-sama, berarti kita dapat menghindari ekspresi reguler yang kompleks dengan mod_rewrite.


Dengan asumsi bahwa nama domain yang ingin kita gunakan, misalnya, www.example.com , konfigurasi kami berarti bahwa permintaan ke www.example.com/myapp sebenarnya akan dikirim ke server Payara, seolah-olah pengguna telah terhubung langsung ke localhost : 8080 // MyApp.


File Anda sekarang akan terlihat seperti ini (saya menghapus sebagian besar komentar untuk menjelaskan apa yang sebenarnya dibutuhkan):


gambar
Simpan file Anda.

Untuk menonaktifkan situs default dan mengaktifkan konfigurasi baru kami, jalankan perintah:


  sudo a2dissite 000-default.conf sudo a2ensite payaraSite.conf 

Mulai ulang layanan Server HTTP Apache (mulai ulang yang kami lewati sebelumnya):

 sudo service apache2 restart 

Untuk berhenti dan memulai Apache HTTP Server, itu adalah:

berhenti layanan

  sudo service apache2 stop sudo service apache2 start 

Jangan lupa untuk memulai Server Payara:

 /opt/payara5/bin/asadmin start-domain domain1 

Sebelum membuat perubahan konfigurasi dengan masuk ke localhost , Anda akan dibawa ke layar selamat datang Apache:


gambar

Tetapi sekarang kami menambahkan ke server proxy kami dan memasukkan arahan baru untuk konfigurasi pengguna Apache kami ketika kami memasuki localhost / index.html, yang sekarang kami kirim ke layar selamat datang Server Payara:

gambar

Sekarang Anda dapat menambahkan aplikasi ke server Payara


Dengan demikian, sekarang kami memiliki server HTTP Apache aktif yang bertindak sebagai proxy kami (dengan kemampuan untuk menambahkan modul tambahan), dan server Payara yang berfungsi, siap untuk menambahkan aplikasi ke dalamnya.

Kami pergi melalui instalasi kedua server, mengkonfigurasi Apache, menjelajahi sistem file dan sangat singkat melihat perintah server server Payad Server.


Lain kali kita akan melihat bagaimana memperluas fungsionalitas Apache dan Payara Server, dan bagaimana kita dapat membuat Payara Server memberikan skalabilitas dan peningkatan tambahan yang akan kita tambahkan ke Apache untuk menangani beberapa server internal.

Source: https://habr.com/ru/post/id438442/


All Articles