Mengkonfigurasi Apache untuk bekerja dengan node.js menggunakan mod_proxy melibatkan penubuhan Apache sebagai proksi terbalik untuk lulus permintaan ke aplikasi Node.js anda. Inilah panduan langkah demi langkah untuk memulakan anda:
Pasang Apache dan Mod_Proxy : Pertama, pastikan anda mempunyai Apache yang dipasang pada pelayan anda. Kebanyakan pengagihan termasuk Apache secara lalai. Anda juga perlu memastikan bahawa modul mod_proxy diaktifkan. Mengenai sistem berasaskan Debian, anda boleh mengaktifkannya dengan:
<code>sudo a2enmod proxy sudo a2enmod proxy_http sudo service apache2 restart</code>
Konfigurasikan Apache VirtualHost : Anda perlu mengubah suai konfigurasi Apache anda untuk menubuhkan VirtualHost yang menggunakan mod_proxy untuk menghantar permintaan ke pelayan Node.js anda. Berikut adalah contoh konfigurasi yang boleh anda tambahkan ke /etc/apache2/sites-available/your-site.conf
(atau fail setara bergantung pada persediaan anda):
<code><virtualhost> ServerName yourdomain.com ProxyPreserveHost On # Proxy to your Node.js app ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ # If you want to serve static files directly from Apache # DocumentRoot /var/www/your-site # <directory> # Options Indexes FollowSymLinks MultiViews # AllowOverride All # Require all granted # </directory> </virtualhost></code>
Mulakan semula Apache : Setelah menambah konfigurasi, mulakan semula Apache untuk memohon perubahan:
<code>sudo service apache2 restart</code>
ProxyPass
(dalam contohnya, ia adalah 3000
). Jika aplikasi Node.js anda ditetapkan untuk mendengar pada port atau hos yang berbeza, laraskan ProxyPass
dan ProxyPassReverse
dengan sewajarnya.Penyediaan ini mengarahkan semua permintaan masuk ke Apache ke pelayan Node.js anda, yang membolehkan Apache bertindak sebagai proksi terbalik untuk aplikasi Node.js anda.
Apabila menyediakan Apache dengan Node.js menggunakan mod_proxy, anda mungkin menghadapi beberapa isu biasa. Berikut adalah sebahagian daripada mereka bersama dengan penyelesaian yang berpotensi:
/var/log/apache2/error.log
di Ubuntu). Sebab -sebab biasa termasuk modul lain yang bertentangan dengan mod_proxy. Anda boleh menyelesaikannya dengan memastikan tiada modul yang bercanggah dimuatkan.ProxyPass
.ProxyPass
dan ProxyPassReverse
anda diformat dengan betul dan sepadan dengan struktur URL yang dijangkakan aplikasi Node.js anda. Misconfigurations boleh menyebabkan pengendalian URL yang salah.ProxyPreserveHost
ditetapkan On
dan ProxyPass
dan ProxyPassReverse
dikonfigurasi dengan betul untuk mengendalikan sambungan selamat.Ya, anda boleh menggunakan mod_proxy bersempena dengan mod_proxy_balancer untuk mengedarkan beban merentasi pelbagai contoh node.js. Inilah cara anda boleh mengkonfigurasinya:
Dayakan mod_proxy_balancer : Pastikan modul mod_proxy_balancer diaktifkan. Mengenai sistem berasaskan Debian, anda boleh mengaktifkannya dengan:
<code>sudo a2enmod proxy_balancer sudo a2enmod lbmethod_byrequests sudo service apache2 restart</code>
Konfigurasikan pengimbang beban di Apache : Ubah suai konfigurasi Apache VirtualHost anda untuk memasukkan persediaan pengimbang beban. Berikut adalah contoh untuk mengimbangi beban merentasi dua contoh node.js yang berjalan di pelabuhan yang berbeza:
<code><virtualhost> ServerName yourdomain.com ProxyPreserveHost On <proxy balancer:> BalancerMember http://localhost:3000 BalancerMember http://localhost:3001 </proxy> ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ </virtualhost></code>
Konfigurasi ini menubuhkan pengimbang bernama mycluster
dengan dua contoh node.js. Anda boleh menyesuaikan bilangan pengimbang mengikut persediaan anda.
Mulakan semula Apache : Setelah menubuhkan konfigurasi pengimbang beban, mulakan semula Apache:
<code>sudo service apache2 restart</code>
Persediaan ini akan mengedarkan permintaan masuk merentasi contoh Node.js yang ditentukan, membantu menguruskan beban dengan lebih berkesan.
Mengamankan persediaan Apache dan Node.js anda dengan mod_proxy adalah penting. Berikut adalah beberapa langkah yang boleh anda ambil untuk meningkatkan keselamatan:
Kurangkan maklumat terdedah : Lumpuhkan tandatangan pelayan di Apache untuk tidak mendedahkan maklumat pelayan. Tambahkan yang berikut ke konfigurasi Apache anda:
<code>ServerSignature Off ServerTokens Prod</code>
Hadkan Permintaan Proksi : Untuk mengelakkan penyalahgunaan proksi, anda boleh menetapkan had pada jenis permintaan yang boleh diberi proksi. Tambahkan ini ke konfigurasi Apache anda:
<code>ProxyRequests Off</code>
Tajuk selamat : Melaksanakan tajuk keselamatan dalam konfigurasi Apache anda untuk membantu mengurangkan pelbagai jenis serangan. Contohnya:
<code>Header always set X-Frame-Options "SAMEORIGIN" Header always set X-XSS-Protection "1; mode=block" Header always set X-Content-Type-Options "nosniff" Header always set Referrer-Policy "no-referrer-when-downgrade"</code>
Dengan mengikuti langkah -langkah ini, anda dapat meningkatkan keselamatan Apache dan Node.js anda dengan ketara menggunakan mod_proxy.
Atas ialah kandungan terperinci Bagaimana saya mengkonfigurasi Apache untuk bekerja dengan node.js menggunakan mod_proxy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!