nginxサーバでgzipの設定する方法とその確認
nginxサーバにgzip圧縮を設定してみました。
画像、css、js、その他ファイルなどの静的コンテンツの容量を減らして、サーバのリクエスト量を減らしちゃうぜってやつです。
confファイルの設定
confファイルに以下のように書く。
nginx.confでもいいし、virtualhostを設定した別個のconfファイルでもOK。
各場所はserver{〜}の中。
server { gzip on; gzip_types image/png image/gif image/jpeg text/javascript text/css; gzip_min_length 1000; gzip_proxied any; gunzip on; }
それぞれの意味とか
gzip on;
まずはgzipを使えるようにする。
gzip_types image/png image/gif image/jpeg text/javascript text/css;
対象となるファイルの設定。
画像ファイル(png,gif,jpg)とjs、cssを対象にしました。
gzip_min_length 1000;
gzip化する画像の最低ファイル容量の指定。
もともと軽い画像だと、圧縮する方に時間がかかってしまい、結果として遅くなっちゃいます。
とりあえず1000で指定。
gzip_proxied any;
リクエストの種別にgzipするかを指定できる。
今回は全てのリクエストを対象にするので、anyを指定。
gunzip on;
gzipに対応していないブラウザ向けの処理。
設定後は再起動
sudo systemctl restart nginx
さくらVPSのcentos7でnginx+php-fpmを入れたが、php-fpmが動かなかった場合の対処方法
新しくサーバをつくることになり、さくらVPSを契約した。
さくらVPSはこれで2つ目。いろいろ使ったけど、なんだかんだ安定してるよね。
いつのまにやらcentos7が標準インストール可能になったので、今回契約した新サーバもcentos7にしてみた。
そのサーバで、php7+nginxの環境をつくっている最中にphp-fpmが動かなくて、ハマった。
php-fpmが動かない
nginx.confは順調に起動できたけど、
php-fpmのwww.confの一通りの設定を終えて、起動すると...
$sudo systemctl start php-fpm Failed to start php-fpm.service: Unit not found.
あれ、serviceがないって言われる。
システムの設定ファイルが置いている場所をみてみると
$ls /etc/systemd/system/
リストの中に下記が...
drwxr-xr-x 2 root root 6 1月 1 23:59 php70-php-fpm.service.d
なぬ、そもそもphp-fpmじゃなかった。
「php70-php-fpm」でした。
というわけで下記で実行。
$sudo systemctl start php70-php-fpm
こちらのコマンドで無事に実行できました。
さくらVPSを新規で契約後、SSHでログインできない場合の対応
先日、新規サーバとしてさくらVPSを契約しました。
もともと1Gのサーバを使ってたんだけど、追加でもう一台2Gのプランで借りました。
VPSっていろいろあるんだけど、ネームバリュー的にさくらにしました。
パパっと入力を終えて、クレカ支払いにして2週間のお試し期間をもらう。
契約完了後すぐに、サーバのIPアドレスが送られてきました。
さっそく、ターミナルからSSH。
$ssh root@XXX.XX.XXX.XX ssh: connect to host XXX.XX.XXX.XX port 22: Connection refused
あれ、ログインできない。
お試し期間だとSSHできないとか?
そうだとしたら、VPSサーバのお試しの意味ないだろJK。
いろいろ調べてみると、
契約当初かつお試し期間はつながりにくいらしい。
というわけで対処法を2つほど紹介。
管理画面のコンソールからiptableで22番を開放
再起動しても治らない場合はこちらの方法で。
ちなみに、僕も何度か再起動してもダメだったので、こちらの方法でした。
さきほどの管理画面にログインして、コンソールを開きましょう。
バージョンは何でもOK。
$iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
ログインしたら上記コマンドを実行。
$service iptables restart
実行後は、iptablesをリスタート。
$ssh root@XXX.XX.XXX.XX
これで、改めてローカルのターミナルからSSHしたらいけました。
めでたしめでたし。