Intern
Apache HTTP Server ile çalıştınız mı?
sobes.tech yapay zeka
AI'dan gelen yanıt
Evet, çalıştım. Çeşitli altyapılarda Apache HTTP Server'ın yapılandırılması, optimizasyonu ve desteği konusunda deneyimim var.
Ana çalışma alanları:
- Kurulum ve temel yapılandırma:
- Kaynaktan derleme ve paketlerden kurulum (
apt,yum). - Ana yapılandırma dosyasını düzenleme
httpd.conf(veyaapache2.conf). - Dinleme portlarının yapılandırılması (
Listen).
- Kaynaktan derleme ve paketlerden kurulum (
- Sanal ana makineler (Virtual Hosts):
- Birden fazla siteyi barındırmak için sanal ana makinelerin oluşturulması ve yapılandırılması.
- İsim tabanlı (
Name-based Virtual Hosts) ve IP tabanlı (IP-based Virtual Hosts) yapılandırma. ServerName,ServerAlias,DocumentRootdirektiflerinin kullanımı.
- Apache Modülleri (Modules):
- Modüllerin etkinleştirilmesi ve devre dışı bırakılması (örneğin,
mod_rewrite,mod_ssl,mod_proxy). - URL yeniden yazma kuralları gibi belirli modüllerin yapılandırılması (
mod_rewrite). - MPM (Multi-Processing Modules) ile çalışma —
prefork,worker,event.
- Modüllerin etkinleştirilmesi ve devre dışı bırakılması (örneğin,
- Güvenlik:
mod_sslve Let's Encrypt veya diğer sertifikalar kullanılarak SSL/TLS yapılandırması.- IP üzerinden erişim kısıtlaması (
Order,Deny,Allow). .htaccessveya yapılandırma dosyaları kullanılarak kimlik doğrulama (Basic,Digest) yapılandırması.- Yaygın saldırılardan korunma (örneğin, DDoS, SQL Injection - WAF ile birlikte).
- Performans ve ölçeklenebilirlik:
- MPM ayarlarının optimize edilmesi (
MaxRequestWorkers,StartServers,MinSpareServers,MaxSpareServers). - Önbellekleme kullanımı (
mod_cache,mod_disk_cache). - FastCGI (PHP-FPM) ile entegrasyon ve istekleri proxy etme (
mod_proxy,mod_proxy_http,mod_proxy_fcgi). - Sıkıştırma ayarları (
mod_deflate).
- MPM ayarlarının optimize edilmesi (
- Günlük kaydı ve izleme:
- Erişim günlükleri formatlarının yapılandırılması (
LogFormat,CustomLog). - Hata günlüklerinin analizi (
ErrorLog). - İzleme sistemleri ile entegrasyon (örneğin, Prometheus Exporter, Nagios eklentileri).
- Sunucu durumu ve isteklerin izlenmesi için
mod_statuskullanımı.
- Erişim günlükleri formatlarının yapılandırılması (
- Otomasyon ve dağıtım:
- Apache kurulumu ve yapılandırması için Ansible playbook'larının yazılması.
- Apache ile Docker konteynerlerinin kullanımı.
Bir sanal ana makine yapılandırması örneği:
# Sanal ana makine yapılandırması örneği
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/example.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# HTTPS'ye yönlendirme
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/ssl_error.log
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
<Directory /var/www/example.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
SSLCertificateChainFile /etc/ssl/certs/example.com.ca-bundle # Varsa
# SSL güvenlik ayarları önerilir
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA
SSLHonorCipherOrder on
SSLSessionTickets off
SSLCompression off
</VirtualHost>
Nginx ile karşılaştırmalı deneyim de mevcuttur, bu da belirli görevler için en uygun çözümün seçilmesine veya entegrasyonlarına olanak tanır (örneğin, Nginx arkasında Apache gibi).