Atualmente, estou trabalhando na renovação da minha webform e mudando do Apache para o Nginx.
Portanto, tenho de testar todas as nossas aplicações administrativas e internas antes de o fazer.
Bem, até agora, eu não enfrentei nenhum problema, MAS seria um pouco fácil demais sem ele: D
Hoje instalo meu formulário de supervisão usando o seguinte componente:
- SO: Debian Squeeze 6.0.6
- WebServer: Nginx 1.2.5
- FastCGI: fcgiwrap 1.0.3-3
- PhpCGI: php 5.4.11
- Supervisão: Nagios 3.4.3
Aqui está minha estrutura de diretórios:
/usr/local/$APPNAME$/$SUBTREE$ --> Aim for all binaries and libraries outside the OS.
/etc/$APPNAME$/$SUBTREE$ --> Directory for all binaries configuration files.
/srv/apps/$WEBAPPNAME$/$SUBTREE$/ --> Directory for all HTML/PHP/CGI related files.
Depois disso eu tenho:
/usr/local/nagios/ all owned by nagios user/group.
/usr/local/nginx/ all owned by nginx user/group.
/usr/local/fcgiwrap/ all owned by nginx user/group.
/usr/local/phpcgi/ all owned by nginx user/group.
e
/etc/nagios/ all owned by nagios user/group.
/etc/nginx/ all owned by nginx user/group.
e
/srv/app/nagios/{cgi-bin;stylesheets;etc} all owned by nginx.
Meu PhpCGI Wrapper está funcionando bem e servindo as páginas PHP conforme solicitado porque eu tenho a página principal do Nagios exibida corretamente.
O problema parece vir do meu FastCGI Wrapper, que não pára para enviar um erro estúpido, alegando que ele não foi chamado com nenhum parâmetro DOCUMENT_ROOT ou SCRIPT_FILENAME.
Mas, em relação à configuração do Nginx, tudo parece estar bem.
Encontrei algo relacionado em outra pergunta do ServerFault, mas a atualização do wrapper FastCGI não me ajuda.
Aqui está minha configuração do NGinx:
1 user nginx nginx;
2 worker_processes 4;
3 pid /var/run/nginx/nginx.pid;
4 error_log /var/log/nginx/error.log;
5
6 events {
7 worker_connections 1024;
8 }
9
10
11 http {
12 include mime.types;
13 default_type application/octet-stream;
14 sendfile on;
15 keepalive_timeout 65;
16 gzip on;
17
18 upstream fcgiwrap {
19 server unix:/var/run/fcgiwrap.socket;
20 }
21
22
23 server {
24 listen 443;
25 server_name nagios.domain.tld;
26 root /srv/apps/nagios;
27 ssl on;
28 ssl_certificate /etc/nginx/security/cert.crt;
29 ssl_certificate_key /etc/nginx/security/cert.key;
30 ssl_session_timeout 5m;
31 ssl_protocols SSLv2 SSLv3 TLSv1;
32 ssl_ciphers HIGH:!aNULL:!MD5;
33 ssl_prefer_server_ciphers on;
34
35 charset utf8;
36 access_log /var/log/nginx/access.log;
37
38 location / {
39 index index.php;
40 auth_basic "Nagios Restricted Access";
41 auth_basic_user_file /etc/nagios/passwd.users;
42 }
43
44 location ~\.php$ {
45 auth_basic "Nagios Restricted Access";
46 auth_basic_user_file /etc/nagios/passwd.users;
47 include fastcgi_params;
48 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
49 fastcgi_pass 127.0.0.1:9000;
50 }
51
52 location ~\.cgi$ {
53 auth_basic "Nagios Restricted Access";
54 auth_basic_user_file /etc/nagios/passwd.users;
55 include fastcgi_params;
56 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
57 fastcgi_param AUTH_USER $remote_user;
58 fastcgi_param REMOTE_USER $remote_user;
59 fastcgi_pass fcgiwrap;
60 }
61 }
62 }
o socket Fcgiwrap é manipulado pelo nginx, e todas as minhas permissões parecem boas.
Então, se você tem alguma pista ou ajuda, seria muito gratificante: D
Obrigado antecipadamente.