Раздел 10. Модули Апача Пункты: 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 163 164 165 166 167 168 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 203 204 205 206 207 208 209 210 211 212 213 RU EN Пункт 163. Модуль Apache mod_macro Предоставляет макросы в файлах конфигурации времени выполнения Apache httpd, чтобы упростить процесс создания множества похожих блоков конфигурации. Когда сервер запускается, макросы раскрываются с использованием предоставленных параметров, а результат обрабатывается вместе с остальной частью файла конфигурации. ПрименениеМакросы определяются с помощью Например, вы можете использовать макрос для определения <Макро VHost $имя $домен> <Виртуальный хост *:80> имя_сервера $domain Псевдоним сервера www.$domain DocumentRoot "/var/www/vhosts/$имя" ErrorLog "/var/log/httpd/$name.error_log" CustomLog "/var/log/httpd/$name.access_log" в сочетании </ виртуальный хост> </Макрос> Имена макросов нечувствительны к регистру, как директивы конфигурации httpd. Однако имена переменных чувствительны к регистру. Затем вы должны несколько раз вызвать этот макрос для создания виртуальных хостов: Используйте пример VHost example.com Используйте VHost myhost hostname.org Используйте виртуальный хост apache apache.org UndefMacro VHost Во время запуска сервера каждый из этих Директива Более сложную версию этого примера можно увидеть ниже в разделе «Примеры». СоветыИмена параметров должны начинаться с символа, такого как Параметры с префиксом Избегайте использования параметра, который содержит другой параметр в качестве префикса (например, Если вы хотите использовать значение в другой строке, полезно заключить параметр в фигурные скобки, чтобы избежать путаницы: <Макрокорень документа ${docroot}> DocumentRoot "/var/www/${docroot}/htdocs" </Макрос> ПримерыОпределение виртуального хостаОбычно используется ## Определите макрос VHost для повторяющихся конфигураций <Macro VHost $host $port $dir> Прослушать $ порт <Виртуальный хост *:$port> имя_сервера $host DocumentRoot "$ каталог" # Публичный корень документа <Каталог "$dir"> Требовать все предоставленные </Каталог> # ограничить доступ к подкаталогу интрасети. <Каталог "$dir/интрасеть"> Требовать ip 10.0.0.0/8 </Каталог> </ виртуальный хост> </Макрос> ## Использование VHost с разными аргументами. Используйте VHost www.apache.org 80 /vhosts/apache/htdocs Используйте VHost example.org 8080 /vhosts/example/htdocs Используйте VHost www.example.fr 1234 /vhosts/example.fr/htdocs Удаление определения макросаРекомендуется отменить определение макроса после его использования. Это позволяет избежать путаницы в сложном файле конфигурации, где могут быть конфликты имен переменных. <Группа каталогов макроса $dir $group> <Каталог "$dir"> Требовать группу $группа </Каталог> </Макрос> Используйте DirGroup /www/apache/private private Используйте DirGroup /www/apache/server admin UndefМакрокаталогГруппа Директива <Макрос>
Директива <Политика локального доступа к макросу> Требовать ip 10.2.16.0/24 </Макрос> <Macro RestrictedAccessPolicy $ipnumbers> Требовать ip $ipnumbers </Макрос> Директива UndefMacro
Директива UndefMacro LocalAccessPolicy UndefMacro RestrictedAccessPolicy Использовать директиву
Директива Использовать локальную политику доступа ... Используйте политику ограниченного доступа "192.54.172.0/24 192.54.148.0/24" с макросами, определенными выше, эквивалентно: Требовать ip 10.2.16.0/24 ... Требуется ip 192.54.172.0/24 192.54.148.0/24 Пункты: 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 163 164 165 166 167 168 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 203 204 205 206 207 208 209 210 211 212 213 |