Di Apache2 di ubuntu saya mendengarkan situs saya di 80, dan sekarang saya ingin menambahkan SSL. Apakah ada cara untuk mengaktifkan SSLEngine untuk port 443 jadi saya tidak perlu menyalin seluruh blok VirtualHost?
Ketika saya melakukan ini:
Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
SSLEngine On
... a bunch more lines...
</VirtualHost>
Mengaktifkan SSLEngine untuk port 80. Apakah ada cara untuk menggunakan hanya satu blok VirtualHost, dan hanya menyalakan SSLEngine untuk port 443? Jadi saya bisa melakukan sesuatu seperti ini?
Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
<IfPort 443>
SSLEngine On
</IfPort>
... a bunch of lines I don't want to copy into another VirutalHost block...
</VirtualHost>
apache-2.2
mod-ssl
sayang
sumber
sumber
Seperti yang saya sebutkan pada pertanyaan berbeda tentang stackoverflow ( /programming/679383/do-i-have-to-duplicate-the-virtualhost-directives-for-port-80-and-443/52375167# 52375167 ):
Pilihan lain daripada menggunakan
Include
adalah menggunakanMacro
(sehingga Anda dapat menyimpan semuanya dalam satu file).Pertama-tama aktifkan modul makro:
Lalu, letakkan barang yang Anda bagikan di makro dan
use
dari virtualhost Anda:Macro juga dapat mengambil parameter, dan didefinisikan dalam file lain yang disertakan; jadi Anda dapat menggunakannya sedikit seperti Functions, dan menyimpan banyak duplikasi di file konfigurasi Apache Anda.
Lihat di sini untuk detail lebih lanjut:
https://httpd.apache.org/docs/2.4/mod/mod_macro.html
sumber
Anda dapat menempatkan pengaturan direktori di
<Directory>
blok di luar<VirtualHost>
blok apa pun . Itu akan menerapkannya di semua host virtual, tetapi hanya di dalam jalur yang ditentukan.sumber