Konfigurasi Apache dikonfigurasikan oleh fail httpd.conf, jadi arahan konfigurasi berikut diubah suai dalam fail httpd.conf.
Konfigurasi tapak utama (konfigurasi asas)
(1) Konfigurasi asas:
ServerRoot "/mnt/software/apache2" #Lokasi di mana perisian apache anda dipasang. Jika tiada laluan mutlak ditentukan untuk direktori lain yang ditentukan, direktori adalah relatif kepada direktori ini.
PidFile logs/httpd.pid #Nombor proses lokasi fail proses httpd pertama (proses induk semua proses lain).
Dengar 80 #Nombor port yang pelayan dengar.
Nama Pelayan www.clusting.com:80 #Nama tapak utama (nama hos tapak web).
ServerAdmin admin@clusting.com #Alamat e-mel pentadbir.
DocumentRoot "/mnt/web/clusting" #Lokasi storan halaman web tapak utama.
Berikut ialah kawalan akses untuk direktori tapak utama:
Pilihan FollowSymLinks
AllowOverride None
Pesan benarkan, tolak
Benarkan daripada semua
Dalam konfigurasi atribut direktori di atas, terdapat terutamanya pilihan berikut:
Pilihan : Konfigurasi Ciri yang digunakan dalam direktori tertentu, nilai sepunyadan makna asas adalah seperti berikut:
ExecCGI: Skrip CGI dibenarkan untuk dilaksanakan dalam direktori ini.
FollowSymLinks: Membenarkan sistem fail menggunakan pautan simbolik dalam direktori ini.
Indeks: Apabila pengguna mengakses direktori, jika pengguna tidak dapat mencari fail halaman utama (seperti index.html) yang ditentukan oleh DirectoryIndex, senarai fail dalam direktori akan dikembalikan kepada pengguna.
SymLinksIfOwnerMatch: Apabila menggunakan pautan simbolik, akses hanya boleh dilakukan apabila pemilik fail pautan simbolik adalah sama dengan pemilik fail sebenar.
Untuk nilai dan makna lain yang tersedia, lihat: http://www.clusting.com/Apache/ApacheManual/mod/core.html#options
AllowOverride: Dibenarkan untuk wujud dalam . Jenis arahan dalam fail htaccess (nama fail .htaccess boleh ditukar dan nama failnya ditentukan oleh arahan AccessFileName):
Tiada: Apabila AllowOverride ditetapkan kepada Tiada. Jangan cari fail .htaccess dalam direktori ini (boleh mengurangkan overhed pelayan).
Semua: Semua arahan boleh digunakan dalam fail .htaccess.
Untuk nilai dan makna lain yang tersedia (seperti: Options FileInfo AuthConfig Limit, dll.), sila rujuk: http://www.clusting.com/Apache/ApacheManual/mod/core.html #AllowOverride
Pesanan: Kawal yang mana antara dua peraturan akses Allow dan Deny diutamakan semasa akses:
Allow: Senarai hos yang dibenarkan untuk diakses (nama domain atau subnet yang tersedia, contohnya: Benarkan daripada 192.168.0.0/16).
Nafikan: Senarai hos yang dinafikan akses.
Untuk penggunaan yang lebih terperinci, sila rujuk: http://www.clusting.com/Apache/ApacheManual/mod/mod_access.html#order
DirectoryIndex index.html index.htm index .php #Tetapan fail halaman utama (dalam contoh ini, fail halaman utama ditetapkan kepada: index.html, index.htm dan index.php)
(2) Pengoptimuman pelayan (MPM: Multi -Modul Pemprosesan)
Kelebihan utama apache2 ialah ia mempunyai sokongan yang lebih baik untuk berbilang pemproses Anda juga boleh menggunakan pilihan --dengan-mpm semasa penyusunan untuk menentukan mod kerja apache2. Jika anda tahu mekanisme kerja apache2 semasa gunakan, anda boleh menggunakan arahan httpd -l untuk menyenaraikan semua modul Apache, dan anda boleh tahu cara ia berfungsi:
prefork: Jika httpd -l menyenaraikan prefork.c , anda perlu Konfigurasikan bahagian berikut:
StartServers 5 #Bilangan proses httpd bermula apabila memulakan apache.
MinSpareServers 5 #Bilangan minimum proses terbiar yang diselenggara oleh pelayan.
MaxSpareServers 10 #Bilangan maksimum proses terbiar yang diselenggara oleh pelayan.
MaxClients 150 #Bilangan maksimum sambungan serentak.
MaxRequestsPerChild 1000 #Berapa kali setiap proses kanak-kanak diminta untuk diservis sebelum ia dibunuh. 0 bermakna tiada had, dan disyorkan untuk menetapkannya kepada 1000.
Dalam mod kerja ini, 5 proses httpd akan dimulakan selepas pelayan bermula (ditambah 6 proses induk secara keseluruhan, melalui ps -ax|grep arahan httpd boleh dilihat). Apabila pengguna menyambung, Apache akan menggunakan proses melahu untuk menyampaikan sambungan dan proses induk akan menghentikan proses anak. Sehingga bilangan proses terbiar dalam ingatan mencapai MaxSpareServers. Mod ini adalah untuk keserasian dengan beberapa versi program yang lebih lama. Pilihan masa penyusunan lalai saya.
pekerja: Jika httpd -l menyenaraikan worker.c, anda perlu mengkonfigurasi bahagian berikut:
StartServers 2 #Start The number proses httpd yang dimulakan oleh apache.
MaxClients 150 #Bilangan maksimum sambungan serentak.
MinSpareThreads 25 #Bilangan minimum benang terbiar yang dikekalkan oleh pelayan.
MaxSpareThreads 75 #Bilangan maksimum utas melahu yang dikekalkan oleh pelayan.
ThreadsPerChild 25 #Bilangan utas yang dijana oleh setiap proses kanak-kanak.
MaxRequestsPerChild 0 #Berapa kali setiap proses kanak-kanak diminta untuk diservis sebelum ia dibunuh. 0 bermakna tiada had, dan disyorkan untuk menetapkannya kepada 1000.
Mod ini menggunakan urutan untuk memantau sambungan pelanggan. Apabila pelanggan baharu menyambung, salah satu daripada benang terbiar menerima sambungan itu. Pelayan memulakan dua proses pada permulaan, dan bilangan utas yang dijana oleh setiap proses ditetapkan (ditentukan oleh ThreadsPerChild), jadi terdapat 50 utas pada permulaan. Apabila 50 utas tidak mencukupi, pelayan secara automatik menghentikan proses dan menjana 25 lagi utas.
perchild: Jika httpd -l menyenaraikan perchild.c, bahagian berikut perlu dikonfigurasikan:
NumServers 5 # Bilangan proses kanak-kanak bermula apabila pelayan bermula
StartThreads 5 #Bilangan utas bermula apabila setiap proses kanak-kanak bermula
MinSpareThreads 5 #Bilangan minimum thread melahu dalam memori
MaxSpareThreads 10 #Bilangan maksimum utas terbiar
MaxThreadsPerChild 2000 #Setiap utas boleh diminta bilangan maksimum kali sebelum keluar. 0 tidak terhad.
MaxRequestsPerChild 10000 #Berapa kali setiap proses anak berkhidmat sebelum dicabang semula. 0 bermakna tiada had.
Dalam mod ini, bilangan proses anak ditetapkan dan bilangan utas tidak terhad. Apabila pelanggan menyambung ke pelayan, benang terbiar menyediakan perkhidmatan. Jika bilangan utas melahu tidak mencukupi, proses anak menjana utas secara automatik untuk menyampaikan sambungan baharu. Mod ini digunakan untuk pelayan berbilang tapak.
(3) Konfigurasi maklumat pemulangan HTTP:
ServerTokens Prod #Parameter ini menetapkan maklumat versi apache yang dikembalikan oleh pengepala http Nilai dan makna yang tersedia adalah seperti berikut:
Prod: nama perisian sahaja, contohnya: apache
Major: termasuk nombor versi utama, contohnya: apache/2
Minor: termasuk nombor versi minor, contohnya: apache/2.0
Min: sahaja nombor versi penuh apache, contohnya: apache/ 2.0.54
OS: termasuk jenis sistem pengendalian, contohnya: apache/2.0.54 (Unix)
Penuh: termasuk modul dan nombor versi modul yang disokong oleh apache, sebagai contoh: Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g
ServerSignature Off #Sama ada maklumat versi pelayan muncul apabila ralat berlaku pada halaman. Tetapan yang disyorkan ialah Mati
(4) Tetapan sambungan berterusan
KeepAlive On #Hidupkan fungsi sambungan berterusan. Iaitu, apabila pelanggan menyambung ke pelayan, ia kekal bersambung selepas memuat turun data.
MaxKeepAliveRequests 100 #Bilangan maksimum permintaan untuk perkhidmatan sambungan.
KeepAliveTimeout 30 #Berapa lama untuk terus menyambung Jika sambungan tidak meminta data lagi, sambungan akan terputus. Lalai ialah 15 saat.
Tetapan Alias
Untuk halaman yang tiada dalam direktori yang ditentukan oleh DocumentRoot, anda boleh menggunakan sama ada pautan simbolik atau alias. Tetapan alias adalah seperti berikut:
Alias /download/ "/var/www/download/" #Apabila mengakses, anda boleh memasukkan: http://www.custing.com/download/
< Direktori "/var/www/download"> #Konfigurasikan tetapan kawalan akses untuk direktori ini
Pilihan Indeks MultiViews
AllowOverride AuthConfig
Pesan benarkan
Benarkan daripada semua
Tetapan CGI
ScriptAlias /cgi-bin/ "/mnt/software/apache2/cgi-bin/" # Apabila diakses: http ://www.clusting.com/cgi-bin/ . Tetapi fail skrip CGI dalam direktori ini perlu mempunyai kebenaran boleh laku!
AllowOverride None
Tiada Pilihan
Pesan benarkan, tolak
Benarkan daripada semua
Tetapan halaman utama peribadi (public_html)
UserDir public_html (Halaman utama pengguna disimpan dalam direktori public_html di bawah URL direktori utama pengguna http: / /www.clusting.com/~bearzhang/file.html akan membaca fail /home/bearzhang/public_html/file.html)
chmod 755 /home/bearzhang #Dayakan pengguna lain membaca fail .
UserDir /var/html (URL http://www.clusting.com/~bearzhang/file.html akan membaca /var/html/bearzhang/file.html)
UserDir /var/www/*/docs (URL http://www.clusting.com/~bearzhang/file.html akan membaca /var/www/bearzhang/docs/file.html)
Tetapan log
(1) Tetapan log ralat
Log ErrorLog/error_log #Lokasi storan log
LogLevel amaran #Tahap log
Format yang dipaparkan adalah seperti berikut:
[Isnin 10 Okt 15:54:29 2005] [ ralat] [klien 192.168 .10.22] akses kepada /muat turun/ gagal, sebab: pentadbir pengguna tidak dibenarkan akses
(2) Akses tetapan log
Format lalai log adalah seperti berikut:
Format Log " %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" digabungkan
LogFormat "%h %l %u %t " %r" %>s %b" biasa #common ialah nama format log
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent }i" ejen
CustomLog log/access_log common
Parameter dalam format adalah seperti berikut:
%h --Alamat ip atau nama hos pelanggan
%l --The Ini ialah identiti RFC 1413 yang ditentukan oleh identd pelanggan Simbol "-" dalam output menunjukkan bahawa maklumat di sini tidak sah.
%u – Nama pelanggan yang mengakses halaman web yang diperolehi oleh sistem pengesahan HTTP. Ia hanya sah jika terdapat pengesahan Simbol "-" dalam output menunjukkan bahawa maklumat di sini adalah tidak sah.
%t – Masa apabila pelayan selesai memproses permintaan.
"%r" --Tanda petikan ialah kandungan permintaan yang dihantar oleh pelanggan yang mengandungi banyak maklumat berguna.
%>s --Ini ialah kod status yang dikembalikan oleh pelayan kepada klien.
%b --Item terakhir ialah bilangan bait yang dikembalikan kepada klien tidak termasuk pengepala respons.
"%{Referer}i" --Item ini menentukan halaman web mana permintaan diserahkan.
"%{User-Agent}i" --Item ini ialah maklumat pengenalan penyemak imbas yang disediakan oleh penyemak imbas pelanggan.
Berikut ialah contoh log akses:
192.168.10.22 - bearzhang [10/Oct/2005:16:53:06 +0800] "DAPATKAN /muat turun/ HTTP/1.1" 200 1228
192.168.10.22 - - [10/Okt/2005:16:53:06 +0800] "DAPATKAN /icons/blank.gif HTTP/1.1" 304 -
192.168.10.22 -/ [10/Okt 2005: 16:53:06 +0800] "GET /icons/back.gif HTTP/1.1" 304 -
Untuk penjelasan terperinci bagi setiap parameter, sila rujuk: http://www.clusting.com /Apache/ApacheManual /logs.html
Konfigurasi pengesahan pengguna
(1)dalam httpd.conf:
AccessFileName .htaccess
......... .
Alias /download/ "/var/www/download/"
Indeks Pilihan
AllowOverride AuthConfig
< /Direktori>
(2) cipta fail kata laluan:
/usr/local/apache2/bin/htpasswd -c /var/httpuser/passwords bearzhang
(3)menonfigur pelayan untuk meminta kata laluan dan beritahu pelayan pengguna yang dibenarkan akses
vi /var/www/download/.htaccess:
AuthType Basic
AuthName "Fail Terhad"
AuthUserFile /var/httpuser/passwords
Memerlukan pengguna bearzhang
#Memerlukan pengguna yang sah #semua pengguna yang sah
Konfigurasi hos maya
(1) Konfigurasi hos maya berdasarkan alamat IP
Dengar 80
(2) konfigurasi hos maya berasaskan IP dan berbilang port
Dengar 172.20.30.40:80
Dengar 172.20.30.40:8080
Dengar 172.20.30.50:80
Dengar 172.20.30.50:8080
Nama Pelayan www.example1 .com
DocumentRoot /www.example1-
VirtualHost>
DocumentRoot /www/example2-80
Nama Pelayan www.example1.org
# Pastikan Apache mendengar pada port 80
Listen 80
# Dengar permintaan hos maya pada semua alamat IP
NameVirtualHost *:80
DocumentRoot /www/example1
ServerName www.example1.com
ServerAlias. example *. com
# Arahan lain di sini
DocumentRoot /www/example2
Nama Pelayan www.example2. 🎜>(4) Konfigurasikan hos maya berasaskan nama domain pada pelayan dengan berbilang alamat IP:
Dengar 80
# Ini ialah pelayan "utama" yang berjalan pada 172.20.30.40
ServerName server.domain .com
DocumentRoot /www/mainserver
# Ini ialah alamat lain
NameVirtualHost 172.20.30.50
Nama Pelayan www.example1.com
#Arahan lain di sini ...
Nama Pelayan www.example2.org
# Arahan lain di sini ...
(5) Jalankan tapak berbeza pada port berbeza (Konfigurasikan maya berasaskan nama domain hos pada pelayan berbilang port):
Listen 80
Listen 8080
NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080<. .30.40:80>
Nama Pelayan www.example1.com
DocumentRoot /www/domain-80
DocumentRoot /www/domain-8080
DocumentRoot /www/otherdomain-80
Nama Pelayan www.example2.org
Docu mentRoot /www/otherdomain-8080
NameVirtualHost 172.20.30.40
ServerName www.example3.net
Konfigurasi penyulitan SSL
Pertama, mari kita fahami beberapa konsep asas sebelum konfigurasi:
Konsep sijil: pertama mesti ada sijil akar, dan kemudian sijil akar digunakan untuk mengeluarkan sijil pelayan dan sijil klien Difahamkan secara umum: sijil pelayan dan sijil klien berada dalam hubungan mendatar. SSL mesti memasang sijil pelayan untuk pengesahan. Oleh itu: Dalam persekitaran ini, mesti ada sekurang-kurangnya tiga sijil: sijil akar, sijil pelayan, sijil pelanggan. Sebelum menjana sijil, biasanya terdapat kunci persendirian, dan kunci persendirian digunakan untuk menjana permintaan sijil, dan kemudian sijil akar pelayan sijil digunakan untuk mengeluarkan sijil.
Sijil yang digunakan oleh SSL boleh dijana sendiri atau boleh ditandatangani oleh CA komersial (seperti Verisign atau Thawte).
Isu dengan mengeluarkan sijil: Jika anda menggunakan sijil komersial, sila semak arahan penjual yang berkaitan untuk kaedah menandatangani khusus jika ia adalah sijil yang ditandatangani oleh rakan rapat, anda boleh menggunakan CA. alat skrip sh yang disertakan dengan openssl.
Jika anda tidak mengeluarkan sijil untuk pelanggan yang berasingan, sijil pelanggan tidak perlu dijanakan pelanggan dan pelayan menggunakan sijil yang sama.
(1) Parameter utama dalam fail konfigurasi conf/ssl.conf dikonfigurasikan seperti berikut:
Listen 443
SSLPassPhraseDialog buildin
#SSLPassPhraseDialog exec:/path/to/program
SSLSessionCache dbm:/usr/local/apache2/logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex cal/fail SSLMutex/🎜>SSLMutex //usr2/loxs
# Persediaan umum untuk hos maya
DocumentRoot "/usr/local/apache2/htdocs"
Nama Pelayan www.example.com:443
Pelayan
TransferLog /usr/local/apache2/logs/access_log
SSLEngine dihidupkan
SSLCipherSuite SEMUA:!ADH:!EXPORT56:+RCA HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/local conf/ssl.key/server.key
CustomLog /usr/local/apache2/logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
(2) 创建和使用自签署的证书:
a.Buat kunci pribadi RSA untuk pelayan Apache anda
/usr/local /bin openrsa- usr/local/apache2/conf/ssl.key/server.key 1024
b. Buat Permintaan Penandatanganan Sijil (CSR)
/usr/local/openssl/bin/openssl req -new -key /usr/local/apache2/conf/ssl.key/server.key -out /usr/local/apache2 /conf/ssl.key/server.csr
c. Buat Sijil CA yang ditandatangani sendiri (struktur X509 ) dengan kunci RSA CA
/usr/local/openssl/bin/openssl req -x509 -days 365 -key /usr/local. key/server.key -in /usr/local/apache2/conf/ssl.key/server.csr -out /usr/local/apache2/conf/ssl.crt/server.crt
/usr/ local/openssl/bin/openssl genrsa 1024 -out server.key
/usr/local/openssl/bin/openssl req -new -key server.key -out server.csr
/usr/local/openssl bin/openssl req -x509 -days 365 -key server.key -in server.csr -out server.crt
(3) 创建自己的CA(认证䯁,羨认证证,羨认证䯁,羨证证,羨认证证,羨证证,羨证证,繦证证,羨证证,羨认证证,羨认证证,羨认证证,羨认证证,繦证证,羨证证,羨证佁服务器的证书。
mkdir /CA
cd /CA
cp openssl-0.9.7g/apps/CA.sh /CA
./CA.sh -newca
outssl genrsa -- server.key 1024
openssl req -new -key server.key -out server.csr
cp server.csr newreq.pem
./CA.sh -sign
cp newcert.pem /usr/local/apache2/conf/ssl.crt/server.crt
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi Apache. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!