ブログの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.comをhttp://4geek.netにリダイレクトさせたいときは以下のように記述する。
server {
listen 80;
server_name promamo.com;
rewrite ^(.*)$ http://4geek.net$1 permanent;
}
参考
nginx コマンド超シンプル早見表
nginxでサブドメインを使えるように設定する
