自宅に複数サーバがあってドメインでサーバを分けたいと思った
自宅は1つのグローバルIPしかないけどサーバが二つあって ドメインを振ろうにもどうやるんだ?って迷ってたらnginxでなんかできたなと思い出した
もう一つのサーバで動いてるのは何かというとファイルサーバ ファイルサーバにはメインサーバのCNAMEでドメインを振る
一応メイン?のサーバはないよりはマシなベーシック認証とfail2banで設定している ローカルからのアクセスにはベーシック認証をかけていない
[code lang=text] satisfy any; allow 192.168.0.0/24; deny all;
auth_basic "Please enter your username and password.";
auth_basic_user_file "/etc/nginx/conf.d/.htpasswd";
[/code]
あんまりconfファイル増やしたくないし
[code lang=text] location ^~ /server2/ { satisfy any; allow all; proxy_pass http://192.168.0.47; } [/code]
みたいな感じでいけねーかなと思っていろいろ試したけどダメだったので新しいconfにすることにした (そもそも別のサーバに飛ばすんだから別のconfに書いた方がわかりやすいことを後で気づく
[code lang=text] [root@n54l conf.d]# cat test.conf server { listen 80; server_name test.astail.net; root /var/www/html; index index.php index.html; client_max_body_size 2G; charset UTF-8; fastcgi_buffers 64 4K; fastcgi_read_timeout 3600s;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
proxy_set_header Host $http_host;
location / {
proxy_pass http://192.168.0.47;
}
} [/code]
ファイルサーバ側のnginxは特に何も弄ってないが気をつける点が一点 リバースプロキシ側のnginxの設定でも client_max_body_size 2G; fastcgi_read_timeout 3600s; とかを書いてあげないとファイルサーバまで行く途中で引っかかる場合があるので注意