В настоящее время я работаю над обновлением своей веб-платформы и переходом с Apache на Nginx.
Итак, я должен протестировать все наши административные и внутренние приложения, прежде чем делать это.
Ну пока никаких проблем не возникло, НО без этого было бы немного проще: D
Итак, сегодня я устанавливаю свою контрольную пластину, используя следующий компонент:
Вот моя структура каталогов:
/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.
После этого у меня есть:
/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.
&
/etc/nagios/ all owned by nagios user/group.
/etc/nginx/ all owned by nginx user/group.
&
/srv/app/nagios/{cgi-bin;stylesheets;etc} all owned by nginx.
Моя оболочка PhpCGI работает хорошо и обслуживает страницы PHP в соответствии с запросом, потому что у меня правильно отображается главная страница Nagios.
Проблема, кажется, исходит из моего FastCGI Wrapper, который не перестает отправлять глупую ошибку, утверждая, что ее не вызывали с какими-либо параметрами DOCUMENT_ROOT или SCRIPT_FILENAME.
Но что касается моей конфигурации Nginx, вроде все в порядке.
Я нашел что-то связанное с другим вопросом ServerFault, но обновление оболочки FastCGI мне не помогает.
Вот моя конфигурация 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 }
сокет Fcgiwrap обрабатывается nginx, и все мои разрешения кажутся хорошими.
Так что, если у вас есть какие-либо подсказки или помощь, мы будем очень признательны: D
Заранее спасибо.
Посмотрите на свой fcgiwrap, работающий как пользователь / группа nginx. Не уверен насчет Debian, но в RHEL / CentOS сценарий установки Nagios RPM добавляет группу nagios пользователю apache через:
/usr/sbin/usermod -a -G nagios apache
что можно проверить с помощью
id apache
Это позволяет Apache получать информацию / статус объекта Nagios. Вы захотите предоставить nginx те же привилегии группы nagios.