Nginx Tuning.

rodrigda nginx-forum at
Wed Feb 24 15:41:32 UTC 2016

Alright here is the situtation.  I have nginx and with passenger running.  I
can send load to the server and after a certain point I just start getting
500's back.  I have not been able to see what is causing it.  I have made
tweaks to the config based on some blog posts but I can't get past a certain
point.  I get to about 1400 requests per minute and than start seeing 500s. 
The configs are below.  It almost seems like I might be hitting an OS or
server limit that I can't seem to find.   The server is a 8CPU, 8GB cloud


user www-data;
worker_processes  8;
worker_rlimit_nofile 30000;

error_log  /var/log/nginx/error.log debug;
pid        /var/run/;

events {
  worker_connections  3500;
  use epoll;

http {

  log_format main
$connection $
remote_addr $host $remote_user [$time_local] "$request" "$http_referer"
"$http_user_agent" "$http_x_f
orwarded_for" $upstream_addr $upstream_cache_status "in: $http_cookie"'
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;

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

  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;

  keepalive_requests 100;
  keepalive_timeout  65;

  gzip  on;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_proxied any;
  gzip_vary off;
  gzip_types text/plain text/css application/x-javascript text/xml
application/xml application/rss+xm
l application/atom+xml text/javascript application/javascript
application/json text/mathml;
  gzip_min_length  1000;
  gzip_disable     "MSIE [1-6]\.";

  variables_hash_max_size 1024;
  variables_hash_bucket_size 64;
  server_names_hash_bucket_size 64;
  types_hash_max_size 2048;
  types_hash_bucket_size 64;

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;


server {
  location ~ ^/api/.* {
    include /etc/nginx/conf.d/include/restrict.include;
  ## redirect http to https ##
  location ~ .* {
    return 301 https://$host$request_uri;

server {
  ## set client body size to 15M, to address file upload limitations ##
  client_max_body_size 15M;

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

  ssl on;
  ssl_certificate /etc/nginx/self_signed;
  ssl_certificate_key /etc/nginx/cert.key;

  # Display the maintenance page if it exists
  if (-f $document_root/system/maintenance.html){
    rewrite  ^(.*)$  /system/maintenance.html last;

  # If the file exists as a static file serve it directly without
  # running all the other rewite tests on it
  if (-f $request_filename) {

  # this is the meat of the rails page caching config
  # it adds .html to the end of the url and then checks
  # the filesystem for that file. If it exists, then we
  # rewite the url to have explicit .html on the end
  # and then send it on its way to the next config rule.
  # if there is no file on the fs then it sets all the
  # necessary headers and proxies to our upstream mongrels
  if (-f $request_filename.html) {
          rewrite (.*) $1.html break;

  # Use any statically compressed javascript or stylesheet files
  location ~* ^/(javascripts|stylesheets)/.*\.(js|css) {
    #gzip_static on;


passenger_ruby /opt/ruby/bin/ruby;
passenger_max_pool_size 31;
passenger_min_instances 31;
passenger_pre_start https://llocalhost;
passenger_log_level 2;


location / {
  passenger_enabled on;
  rails_env lt;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log debug;

  passenger_base_uri /;
  alias /home/sites/site/current/public/$1;
  passenger_app_root /home/sites/site/current;
  index index.html index.htm;

#Asset displaying.
location ~ ^/(assets)/  {
  gzip_static on;
  expires max;
  add_header Cache-Control public;
  root /home/sites/site/current/public;

Posted at Nginx Forum:,264775,264775#msg-264775

More information about the nginx mailing list