Rumah >Operasi dan penyelenggaraan >Apache >Bagaimana saya mengkonfigurasi Apache sebagai pelayan proksi terbalik?
Untuk mengkonfigurasi Apache sebagai pelayan proksi terbalik, anda perlu mengikuti beberapa langkah untuk mengubah suai fail konfigurasi Apache anda. Berikut adalah panduan langkah demi langkah untuk membantu anda menetapkannya:
Dayakan modul yang diperlukan : Pastikan modul yang diperlukan diaktifkan. Anda biasanya memerlukan mod_proxy
, mod_proxy_http
, dan mungkin mod_proxy_balancer
jika anda berhasrat untuk mengimbangi beban. Anda boleh mengaktifkan modul ini menggunakan perintah a2enmod
pada sistem berasaskan Debian:
<code>sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod proxy_balancer</code>
Edit fail konfigurasi : Buka fail konfigurasi Apache anda (biasanya terletak di /etc/apache2/apache2.conf
atau /etc/httpd/conf/httpd.conf
) untuk menambah tetapan proksi terbalik. Tambahkan baris berikut untuk mengarahkan lalu lintas ke pelayan backend anda:
<code><virtualhost> ServerName example.com ProxyPass / http://backend-server:8080/ ProxyPassReverse / http://backend-server:8080/ </virtualhost></code>
Gantikan example.com
dengan domain anda dan http://backend-server:8080/
dengan alamat pelayan backend anda.
Mulakan semula Apache : Setelah membuat perubahan pada fail konfigurasi, anda perlu memulakan semula atau memuatkan semula Apache untuk menerapkan perubahan:
<code>sudo systemctl restart apache2</code>
atau
<code>sudo service apache2 restart</code>
Apabila menubuhkan Apache sebagai proksi terbalik, anda mungkin menghadapi beberapa isu biasa. Berikut adalah beberapa masalah dan penyelesaian mereka:
Isu SSL/TLS : Jika pelayan backend anda memerlukan SSL/TLS dan anda tidak mengendalikannya dengan betul dalam konfigurasi Apache anda, anda mungkin menghadapi kesilapan. Dayakan mod_ssl
dan konfigurasikan Apache untuk mengendalikan sambungan SSL. Anda boleh menggunakan SSLProxyEngine On
dalam konfigurasi virtualhost anda:
<code><virtualhost> ServerName example.com SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem ProxyPass / https://backend-server:8443/ ProxyPassReverse / https://backend-server:8443/ </virtualhost></code>
Masa tindak balas yang perlahan : Jika persediaan proksi terbalik anda menghasilkan masa tindak balas yang perlahan, pastikan pelayan Apache anda mempunyai sumber yang mencukupi dan pertimbangkan untuk membolehkan pengumpulan sambungan atau menyesuaikan tetapan masa tamat:
<code>ProxyPass / http://backend-server:8080/ connectiontimeout=5 timeout=30</code>
Isu Penulisan URL : Jika URL anda tidak ditulis semula dengan betul, anda mungkin perlu mengkonfigurasi mod_rewrite
untuk mengendalikan corak URL tertentu. Tambahkan Peraturan Tulis semula ke konfigurasi VirtualHost anda:
<code>RewriteEngine On RewriteRule ^/oldpath/(.*)$ /newpath/$1 [P,L]</code>
Ya, Apache boleh digunakan sebagai proksi terbalik untuk pelayan backend berganda. Ini biasanya dilakukan melalui pengimbangan beban. Inilah cara anda dapat menetapkannya:
Dayakan Modul Pengimbangan Beban : Pastikan modul mod_proxy_balancer
diaktifkan:
<code>sudo a2enmod proxy_balancer</code>
Konfigurasikan pengimbangan beban : Tambahkan konfigurasi berikut ke fail konfigurasi Apache anda:
<code><proxy balancer:> BalancerMember http://backend1:8080 BalancerMember http://backend2:8080 ProxySet lbmethod=byrequests </proxy> <virtualhost> ServerName example.com ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ </virtualhost></code>
Konfigurasi ini menetapkan kelompok mengimbangi beban ( mycluster
) dengan dua pelayan backend ( backend1
dan backend2
) dan mengedarkan beban dengan permintaan.
Mulakan semula Apache : Mulakan semula atau muat semula Apache untuk menerapkan perubahan:
<code>sudo systemctl restart apache2</code>
Apabila mengkonfigurasi Apache sebagai proksi terbalik, penting untuk melaksanakan beberapa langkah keselamatan untuk melindungi pelayan anda dan aplikasi backend. Berikut adalah beberapa langkah yang disyorkan:
Dayakan SSL/TLS : Sambungan selamat antara pelanggan dan proksi terbalik dengan membolehkan SSL/TLS. Konfigurasikan Apache dengan sijil SSL yang sah:
<code><virtualhost> ServerName example.com SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem ProxyPass / https://backend-server:8443/ ProxyPassReverse / https://backend-server:8443/ </virtualhost></code>
Melaksanakan tajuk HTTP : Gunakan tajuk HTTP yang berkaitan dengan keselamatan untuk meningkatkan perlindungan:
<code>Header always set X-Frame-Options "SAMEORIGIN" Header always set X-Content-Type-Options "nosniff" Header always set X-XSS-Protection "1; mode=block" Header always set Content-Security-Policy "default-src 'self';"</code>
Hadkan Akses : Gunakan .htaccess
Files atau <directory></directory>
Arahan untuk menyekat akses kepada direktori atau sumber tertentu:
<code><directory> Require all denied </directory></code>
Mengehadkan Kadar : Melaksanakan Pengaturan Kadar untuk Mencegah Serangan DOS Menggunakan mod_ratelimit
atau mod_evasive
:
<code><ifmodule mod_ratelimit.c> <location></location> SetOutputFilter RATE_LIMIT SetEnv rate-limit 500k </ifmodule></code>
Pembalakan dan pemantauan : Dayakan pembalakan terperinci untuk memantau lalu lintas dan mengesan aktiviti yang mencurigakan. Konfigurasikan Apache ke log log dan log ralat, dan sediakan alat pemantauan untuk memberi amaran kepada anda tentang anomali:
<code>ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined</code>
Dengan mengikuti langkah -langkah ini dan melaksanakan langkah -langkah keselamatan ini, anda dapat memastikan persediaan proksi terbalik yang mantap dan selamat dengan Apache.
Atas ialah kandungan terperinci Bagaimana saya mengkonfigurasi Apache sebagai pelayan proksi terbalik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!