Я использую Nginx для проекта PHP. Вот то, что я делаю в /etc/nginx/sites-available/default
:Nginx несколько доменных директив
server {
server_name domain_a.com;
include /etc/nginx/main.conf; // listen, php directives, etc.
location ~ (.*)\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
server {
server_name domain_b.com;
include /etc/nginx/main.conf;
location ~ (.*)\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
// Specific to this domain
auth_basic "Authentication";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
/etc/nginx/main.conf
listen 80;
client_max_body_size 5M;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
root /var/www/web;
У меня есть много повторения в этом коде: Два location
блок можно объединить в один для двух доменов. Я думаю, что я мог бы использовать оператор if для добавления моего специального кода для domain_b, но он не является рекомендуемым способом в соответствии с документацией. http://wiki.nginx.org/IfIsEvil
У вас есть идея, как я могу сделать, чтобы уважать концепцию DRY?
Thx,
Спасибо, я был заблокирован, потому что я пытаюсь включить auth_basic инструкции в месте, но это не имеет смысла, что –
вы имеете в виду, заблокированные? –
Я имею в виду, что я застрял на проблеме –