Nginx


Overview:

Nginx is Nginx.


Install:

$ sudo yum -y install

:

nginx process:
  master process
  worker process
  cache manager process

core  プロセス制御、設定ファイル制御、ロギング
event   イベント処理(パフォーマンス・チューニング
http  webサーバ関連の設定
mail  メール関連の設定

Config:

/etc/nginx/nginx.conf

worker_cpu_affinity
worker_rlimit_nofile
$ grep processor /proc/cpuinfo |wc      # プロセッサ数
$ cat /proc/sys/fs/file-max             # ファイルディスクリプタ上限



user  nginx;
worker_processes  1;    # num / auto

error_log  /var/log/nginx/error.log warn;  # debug, info, notice, warn, error, crit, alert, emerg
pid        /var/run/nginx.pid;


events {
    worker_connections 512;
    multi_accept on;
}

http {
    server_tokens off;
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format main 'time:$time_iso8601\t'...
    access_log /var/log/nginx/access.log ltsv;
    charset UTF-8;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 75;
    keepalive_requests 100;
    set_real_ip_from   10.0.0.0/8;
    real_ip_header     X-Forwarded-For;
    client_header_timeout 10;
    client_body_timeout 10;
    client_body_buffer_size      32k;
    client_body_temp_path /dev/shm/client_body_temp 1 2;
    client_max_body_size 1m;
    client_header_buffer_size 1k;
    large_client_header_buffers 4 8k;
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    limit_conn  addr  100;
    proxy_buffering on;
    proxy_buffer_size     8k;
    proxy_buffers         100 8k;
    proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=CACHE:512m inactive=1d  max_size=60g;
    gzip on;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_proxied expired no-cache no-store private auth;
    gzip_vary off;
    gzip_types text/plain
           text/css
           text/xml
           ...
           application/json;
    gzip_min_length 1000;
    gzip_disable "MSIE [1-6]\.";
    open_file_cache max=100 inactive=10s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;
    server_names_hash_bucket_size 64
    types_hash_max_size 1024;
    types_hash_bucket_size 64;
    listen 80 default_server;
    server_name_in_redirect off;
    port_in_redirect on;
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_hide_header X-Powered-By;
    proxy_ignore_headers Expires;
    proxy_connect_timeout
    proxy_send_timeout
    proxy_read_timeout
    proxy_redirect off;
    proxy_intercept_errors on;
    error_page 404             /404.html;
    error_page 403 =404 /notfound.html; # 403の場合404に変換される。
    error_page 500 502 503 504 /50x.html;
    include /etc/nginx/vhost.d/*.conf;

    server {
        listen 80 default_server;
        server_name localhost;
        root /path/public
        rewrite /(.*)/index.html $1.html permanent;
        satisfy any;
        auth_basic "basic authentication";
        auth_basic_user_file /etc/nginx/.htpasswd;
        try_files $uri $uri.html $uri/index.html @unicorn;

        location / {
            stub_status on;
            access_log off;
            allow 127.0.0.1;
            deny all;
            expires 10d;
            add_header Cache-Control public;
            break;
            internal;
        }
    }
}



NAMEベース:
http{
    server{
        server_name www.aaa.tld;
    }
    server{
        server_name www.bbb.tld;
    }
}

IPベース:
http{
    server{
        listen 192.168.0.1:80;
        server_name www.aaa.tld;
    }
    server{
        listen 192.168.0.2:80;
        server_name www.bbb.tld;
    }
}

SSL:
http{
    listen 443 ssl;
    ssl on;
    ssl_certificate      /path/to/cert.pem;
    ssl_certificate_key  /path/to/cert.key;
}


バーチャルホスト設定:
/etc/nginx/sites-available/virtualhost.com
$ cd /etc/nginx/sites-enabled/
$ ln -s /etc/nginx/sites-available/virtualhost.com virtualhost.com

include /etc/nginx/sites-enabled/*;

uWSGI (ウィズギー):