2017-06-02 126 views
0

在使用apache多年後,我剛剛切換到了Nginx。我正在切換一切,但我有一次這樣做。我目前的問題是與nagios。我可以訪問Nagios,但它的cgi部分似乎沒有工作,我只是得到亂碼輸出。訪問它時,我也沒有被提示輸入用戶名/密碼,這有點關係。NGINX的配置問題

我也在我的網絡服務器上運行owncloud,這似乎正在正常工作。這是我的配置。任何幫助將不勝感激。

upstream php-handler { 
    server 127.0.0.1:9000; 
} 

server { 
    listen 80; 
    server_name www.<my_server>.com; 
    return 301 https://$server_name$request_uri; 
} 

#SSL Configuration 
server { 
    listen 443 ssl; 
    server_name www.<my_server>.com; 

    ssl_certificate /etc/letsencrypt/live/www.<my_server>.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/www.<my_server>.com/privkey.pem; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on; 
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; 

    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; 
    add_header X-Content-Type-Options nosniff; 
    add_header X-Frame-Options "SAMEORIGIN"; 
    add_header X-XSS-Protection "1; mode=block"; 
    add_header X-Robots-Tag none; 

    include /etc/nginx/default.d/*.conf; 

    root /mnt/Webserver/html; 

    client_max_body_size 10G; 
    fastcgi_buffers 64 4K; 

    # ownCloud blacklist 
    location ~ ^/owncloud/(?:\.htaccess|data|config|db_structure\.xml|README) { 
     deny all; 
     error_page 403 = /owncloud/core/templates/403.php; 
    } 

    location/{ 
     index index.html; 
    } 

    location /owncloud/ { 
     error_page 403 = /owncloud/core/templates/403.php; 
     error_page 404 = /owncloud/core/templates/404.php; 

     rewrite ^/owncloud/caldav(.*)$ /remote.php/caldav$1 redirect; 
     rewrite ^/owncloud/carddav(.*)$ /remote.php/carddav$1 redirect; 
     rewrite ^/owncloud/webdav(.*)$ /remote.php/webdav$1 redirect; 

     rewrite ^(/owncloud/core/doc[^\/]+/)$ $1/index.html; 

     # The following rules are only needed with webfinger 
     rewrite ^/owncloud/.well-known/host-meta /public.php?service=host-meta last; 
     rewrite ^/owncloud/.well-known/host-meta.json /public.php?service=host-meta-json last; 
     rewrite ^/owncloud/.well-known/carddav /remote.php/carddav/ redirect; 
     rewrite ^/owncloud/.well-known/caldav /remote.php/caldav/ redirect; 

     try_files $uri $uri/ index.php; 
    } 

    # Optional: set long EXPIRES header on static assets 
    location ~* ^/owncloud(/.+\.(jpg|jpeg|gif|bmp|ico|png|css|swf))$ { 
     expires 30d; 
     access_log off; # Optional: Don't log access to assets 
    } 

    #Nagios 

    location /nagios { 
     alias /usr/share/nagios; 

     auth_basic "Nagios Access"; 
     auth_basic_user_file /etc/nagios/htpasswd.users; 
     index index.php; 
     autoindex off; 
    } 

    location ~ ^/nagios/(.*\.php)$ { 
     auth_basic "Nagios Restricted Access (via nginx)"; 
     auth_basic_user_file /etc/nagios/passwd; 

     root /usr/share/nagios/; 
     rewrite ^/nagios/(.*) /$1 break; 
     fastcgi_index index.php; 
     include /etc/nginx/fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME /usr/share/nagios$fastcgi_script_name; 
     fastcgi_pass php-handler; 
    } 

    location ~ ^/nagios/(.*\.cgi)$ { 
     auth_basic "Nagios Restricted Access (via nginx)"; 
     auth_basic_user_file /etc/nagios/passwd; 

     root /usr/lib64/nagios/cgi; 
     rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break; 
     include /etc/nginx/fastcgi_params; 
     fastcgi_param AUTH_USER $remote_user; 
     fastcgi_param REMOTE_USER $remote_user; 
     fastcgi_param SCRIPT_FILENAME /usr/lib64/nagios/cgi$fastcgi_script_name; 
     fastcgi_pass php-handler; 
    } 

    location ~ \.php(?:$|/) { 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_param PATH_INFO $fastcgi_path_info; 
     fastcgi_param HTTPS on; 
     fastcgi_pass php-handler; 
    } 
} 

任何幫助將不勝感激。

回答

0

我想通了。這是我的新配置。謝謝。

upstream php-handler { 
    server 127.0.0.1:9000; 
} 

server { 
    listen 80; 
    server_name www.<my_server>.com; 
    return 301 https://$server_name$request_uri; 
} 

#SSL Configuration 
server { 
    listen 443 ssl; 
    server_name www.<my_server>.com; 

    ssl_certificate /etc/letsencrypt/live/www.<my_server>.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/www.<my_server>.com/privkey.pem; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on; 
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; 

    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; 
    add_header X-Content-Type-Options nosniff; 
    add_header X-Frame-Options "SAMEORIGIN"; 
    add_header X-XSS-Protection "1; mode=block"; 
    add_header X-Robots-Tag none; 

    include /etc/nginx/default.d/*.conf; 

    root /mnt/Webserver/html; 

    client_max_body_size 10G; 
    fastcgi_buffers 64 4K; 

    # ownCloud blacklist 
    location ~ ^/owncloud/(?:\.htaccess|data|config|db_structure\.xml|README) { 
     deny all; 
     error_page 403 = /owncloud/core/templates/403.php; 
    } 

    location/{ 
     index index.html; 
    } 

    location /owncloud/ { 
     error_page 403 = /owncloud/core/templates/403.php; 
     error_page 404 = /owncloud/core/templates/404.php; 

     rewrite ^/owncloud/caldav(.*)$ /remote.php/caldav$1 redirect; 
     rewrite ^/owncloud/carddav(.*)$ /remote.php/carddav$1 redirect; 
     rewrite ^/owncloud/webdav(.*)$ /remote.php/webdav$1 redirect; 

     rewrite ^(/owncloud/core/doc[^\/]+/)$ $1/index.html; 

     # The following rules are only needed with webfinger 
     rewrite ^/owncloud/.well-known/host-meta /public.php?service=host-meta last; 
     rewrite ^/owncloud/.well-known/host-meta.json /public.php?service=host-meta-json last; 
     rewrite ^/owncloud/.well-known/carddav /remote.php/carddav/ redirect; 
     rewrite ^/owncloud/.well-known/caldav /remote.php/caldav/ redirect; 

     try_files $uri $uri/ index.php; 
    } 

    # Optional: set long EXPIRES header on static assets 

    location ~* ^/owncloud(/.+\.(jpg|jpeg|gif|bmp|ico|png|css|swf))$ { 
     expires 30d; 
    } 

    #Nagios 

    location /nagios { 
     alias /usr/share/nagios; 

     auth_basic "Nagios Restricted Access (via nginx)"; 
     auth_basic_user_file /etc/nginx/.htpasswd; 
     index index.php; 
     autoindex off; 
    } 

    location ~ ^/nagios/(.*\.php)$ {  
     root /usr/share/nagios/; 
     rewrite ^/nagios/(.*) /$1 break; 
     fastcgi_index index.php; 
     include /etc/nginx/fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME /usr/share/nagios$fastcgi_script_name; 
     fastcgi_pass php-handler; 
    } 

    location ~ ^/nagios/(.*\.cgi)$ { 

     root /usr/lib64/nagios/cgi; 
     rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break; 
     include /etc/nginx/fastcgi_params; 
     fastcgi_param AUTH_USER $remote_user; 
     fastcgi_param REMOTE_USER $remote_user; 
     fastcgi_param SCRIPT_FILENAME /usr/lib64/nagios/cgi$fastcgi_script_name; 
     fastcgi_pass unix:/var/run/fcgiwrap.socket; 
    } 

    location ~ \.php(?:$|/) { 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_param PATH_INFO $fastcgi_path_info; 
     fastcgi_param HTTPS on; 
     fastcgi_pass php-handler; 
    } 
}