Назад | Перейти на главную страницу

Разгрузка марионетки с использованием NGINX, 403 запрещенная ошибка

В настоящее время я пытаюсь выгрузить часть файловой марионетки, которую использует NGINX (как показано здесь http://www.masterzen.fr/2010/03/21/more-puppet-offloading/), однако у меня по-прежнему возникают ошибки 403 при поиске файлов и каталогов.

Одна вещь, которая исправила это, - это добавление "auth any" к первому определению в моем auth.conf, но, насколько мне известно, это полностью отключило бы проверку клиента?

Итак, я не передаю все необходимые заголовки с NGINX или что-то еще не так? Далее следуют файлы конфигурации.

/etc/puppet/puppet.conf

[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
server = Puppet.xServ
pluginsync=false


    external_nodes = /usr/sbin/external_nodes
    node_terminus = exec

    [master]
    certname = puppet.xserv


[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig

/etc/puppet/auth.conf

path ~ ^/catalog/([^/]+)$
method find
allow localhost
allow $1

path /certificate_revocation_list/ca
method find
allow *

path /report
method save
allow *

path /file
allow *

path /certificate/ca
auth no
method find
allow *

path /certificate/
auth no
method find
allow *

path /certificate_request
auth no
method find, save
allow *

path /
auth any 

/etc/puppet/fileserver.conf

[modules]
allow *

/etc/nginx/sites.d/puppet.conf

server {
    listen 8140;

    ssl on; 
    ssl_session_timeout 5m; 
    ssl_certificate /var/lib/puppet/ssl/certs/puppet.xserv.pem;
    ssl_certificate_key /var/lib/puppet/ssl/private_keys/puppet.xserv.pem; 
    ssl_client_certificate /var/lib/puppet/ssl/ca/ca_crt.pem; 
    ssl_verify_client optional; 

    root /etc/puppet;

    # make sure we serve everything
    # as raw 
    types { } 
    default_type application/x-raw;

    # ask the puppetmaster for everything else
    location / { 
        proxy_pass https://127.0.0.1:8141;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Client-Verify $ssl_client_verify;
        proxy_set_header X-SSL-Subject $ssl_client_s_dn;
        proxy_set_header X-SSL-Issuer $ssl_client_i_dn;
        proxy_buffer_size 16k;
        proxy_buffers 8 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        proxy_read_timeout 65; 
    }   
}  

Марионеточная аутентификация основана на IP-адресе источника, а не на том, что говорится в заголовочном файле. В конце концов, файлы заголовков легко подделать. Я не знаю, можно ли настроить Puppet для получения проверяемого IP-адреса из файла заголовка.

Кажется, у меня была ошибка в моей конфигурации, я скопировал рабочую конфигурацию от кого-то другого, и она начала работать мгновенно, и я также переключился на Unicorn, так что, возможно, также придется что-то с ним делать.