Nginxを使って仮想サーバーをたてる

先日作った Sinatra アプリに、sombrero という仮想サーバー名でアクセスできるようにする。
Nginx の仮想サーバーの設定は、/etc/nginx/conf.d 以下に「仮想サーバー名.conf」という設定ファイルを作ることで行う。
というわけで、今回は /etc/nginx/conf.d/sombrero.conf ファイルを作る。

[takatoh@aybesea ~]$ cd /etc/nginx/conf.d
[takatoh@aybesea conf.d]$ sudo vim sombrero.conf

ファイルの内容は次の通り:

upstream unicorn-sombrero {
    server 127.0.0.1:9000;
}

server {
    # port
    listen 80;

    # server name
    server_name sombrero;

    client_max_body_size 8M;

    # log files
    access_log /var/log/nginx/sombrero/access.log combined;
    error_log /var/log/nginx/sombrero/error.log warn;

    keepalive_timeout 60;
    proxy_connect_timeout 60;
    proxy_read_timeout 60;
    proxy_send_timeout 60;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_pass http://unicorn-sombrero;
    }
}

80 番ポートで待ち受けて、アプリの動いている 9000 番ポートへ転送している。

ログファイルのためのディレクトリを作る。

[takatoh@aybesea conf.d]$ sudo mkdir /var/log/nginx/sombrero

これで OK のはず。Nginx をリスタート。

[takatoh@aybesea conf.d]$ sudo systemctl restart nginx

別のマシンから http://sombrero/ にアクセスしてみると、ちゃんと動作していることが確認出来た。

CentOS 7にNginxをインストールする

Nginx は CentOS 7 の標準リポジトリでは提供されていないので、まずは EPEL リポジトリを登録する。

[takatoh@aybesea ~]$ sudo yum install epel-release.noarch

Nginx をインストール。

[takatoh@aybesea ~]$ sudo yum install nginx

firewalld の設定とリスタート。

[takatoh@aybesea ~]$ sudo firewall-cmd --add-service=http --zone=public --permanent
[takatoh@aybesea ~]$ sudo systemctl restart firewalld

Nginx の起動と自動起動の設定。

[takatoh@aybesea ~]$ sudo systemctl enable nginx
[takatoh@aybesea ~]$ sudo systemctl start nginx

これでとりあえずは OK。他のマシンからもアクセスできることを確認した。