config test
centos 7
$ sudo nginx -t
initial
$ vim /etc/nginx/conf.d/default.conf
- add server_tokens: off to html {}
プロキシ設定
$ vim /etc/nginx/conf.d/default.conf
upstream backend {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name localhost;
root /home/user/ws/docker/jitan/src/html;
index index.php index.html index.htm;
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
location / {
try_files $uri @app;
}
location ~* \.php$ {
proxy_pass http://backend;
}
location @app {
proxy_pass http://backend;
}
location ~ /\.ht {
deny all;
}
}
キャッシュプロキシ
http {
proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=cachezone:60m max_size=1G inactive=7d;
location ~* \.(html|css|jpg|gif|ico|js)$ {
expires 1d;
proxy_cache cachezone;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 301 302 1d;
proxy_pass http://backend;
}
}
キャッシュを削除する
cssを含むリンクのみ
grep -lr "css" /var/cache/nginx/ | xargs rm -f
特定のリンク
grep -lr "http://sample.com/" /var/cache/nginx/ | xargs rm -f
basic認証
htpasswdでパスワードファイルを作る
centos7
htpasswdをインストール
$ sudo yum install httpd-tools
$ sudo htpasswd -c /etc/nginx/.htpasswd username
$ sudo vim /etc/nginx/conf.d/default.conf
auth_basic "好きなrealmを";
auth_basic_ user_file /etc/nginx/.htpasswd;
リバースプロキシ
ip_hashでクライアントIPアドレスを元にセッションが維持される
upstream backend {
ip_hash;
server 127.0.0.1:80;
server 127.0.0.1:81 ;
}
# sample
location ~* \.php$ {
proxy_pass http://backend;
}