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

nginx вылетает на ssl примерно через минуту

Вот мои файлы конфигурации

ssl.conf

# HTTPS server
#
server {
    listen       443 ssl;
    server_name  api.domain.com;
    error_log    /var/log/nginx/api.error.log;

    location / {
    root /var/www/api.domain.com;
    index index.html index.php index.php;
    try_files $uri $uri/ /index.php?$args;
    }

    ssl                  on;
    ssl_certificate      /etc/nginx/api.domain.com.crt;
    ssl_certificate_key  /etc/nginx/api.domain.com.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        # root  html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param SCRIPT_FILENAME /var/www/api.domain.com$fastcgi_script_name;
        fastcgi_param HTTPS on;
        include fastcgi_params;
        }

    location ~ /\.ht {
        deny  all;
    }

}

nginx.conf

user              nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;

pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

У меня есть сервер, работающий на порту 80, который работает без проблем. Как только я включаю этот api-сервер, работающий по ssl, он работает около минуты, а затем вылетает и дает тайм-аут 504 Gateway.

Запуск nginx / 1.2.3

Таймауты шлюза в NGiNX обычно вызваны проблемами с fastcgi (например, spawn_fcgi, php-fpm).

Убедитесь, что он работает и слушает.

Если вы используете php-fpm, попробуйте увеличить pm.max_children и pm.max_requests.

Если pm установлен на dynamicпопробуйте поднять pm.start_servers, pm.min_spare_servers, и pm.max_spare_servers.

Если после этого у вас все еще возникают проблемы, попробуйте добавить кэширование общего сеанса SSL и увеличить количество рабочих процессов до количества ядер ЦП, имеющихся в NGiNX.

Пример настроек SSL:

    ssl on;

    ##
    # For SSL caching
    ##
    ssl_session_cache shared:SSL:10m; 

    ##
    # For chained certs
    ##
    ssl_verify_depth 4; 

    ssl_certificate /etc/ssl/certs/cert.crt;
    ssl_certificate_key /etc/ssl/certs/privkey.pem;

    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    ssl_session_timeout 5m;
    keepalive_timeout 70;