Nginxについてのメモ

ブログのWebサーバとしてNginxを使っている。Nginxについて勉強したことをメモしておく。

インストール

Ubuntuの場合は以下のコマンドでインストールすることができる。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx

Ubuntuにデフォルトでインストールされているufw(ファイアウォール)を設定するには以下のようにする。

# ssh(22)のポートを開放する
sudo ufw allow ssh
# ufwで利用可能なアプリケーションを確認
sudo ufw app list
# Nginx Fullを指定してhttp(80)とhttps(443)のポートを開放する
sudo ufw allow 'Nginx Full'
# ファイアウォールを有効化
sudo ufw enable
# ファイアウォールの状態を確認して有効になっていればOK
sudo ufw status

Nginxのコマンド

起動

nginx

停止

nginx -s stop

再起動

nginx -s reload

設定ファイルのチェック

nginx -t

設定ファイルの場所

メインの設定ファイル

cd /etc/nginx/

各サーバー用設定ファイル

cd /etc/nginx/conf.d/

基本的には/etc/nginx/nginx.confに設定ファイルの場所が書いてあるので参照する。

一番単純な使い方

/etc/nginx/conf.d/ドメイン名.confを作成して、そこに設定を記述する。
設定が反映されない場合はnginx.confのVirtual Host Configsの項目にinclude /etc/nginx/conf.d/*.conf;が記述されているかを確認する。

以下は80番ポートで待ち、4geek.netへアクセスされた場合、/var/www/htmlディレクトリへ飛ばす。
index.htmlがある場合はindex.htmlにアクセスし、無ければindex.phpにアクセスする。

server {
    listen 80;
    server_name 4geek.net;
    root /var/www/html;
    location / {
        index index.html index.php;
    }
}

サブドメインを設定する場合

以下のようにserverを2つに分けて記述することでサブドメインを設定することができる。
サブドメインを使う場合はDNS側にもsubdomain.4geek.netをAレコードとして追加する必要がある。

server {
    listen 80;
    server_name 4geek.net;
    root /var/www/html;
    location / {
        index index.html index.php;
    }
}

server {
    listen 80;
    server_name subdomain.4geek.net;
    root /var/www/sub;
    location / {
        index index.html index.php;
    }
}

リダイレクトさせたい場合

http://promamo.comhttp://4geek.netにリダイレクトさせたいときは以下のように記述する。

server {
    listen 80;
    server_name promamo.com;
    rewrite ^(.*)$ http://4geek.net$1 permanent;
}

参考
nginx コマンド超シンプル早見表
nginxでサブドメインを使えるように設定する