yujiroのプログラミング

勉強内容をアウトプットし、サボらないようにする為のブログ

<DAY99>Nginxの導入(WEBサーバー)

\ Follow me!! /

*学習状況

●学習日数 99日

●学習時間(本日)11時間

●累計学習時間 442時間

●一日あたりの平均学習時間 4.46時間

要点まとめ

アプリケーションサーバとは、動的なコンテンツを生成し、処理結果をWebサーバの返すプログラム アプリケーションサーバには2つの役割が存在する Webサーバから依頼された情報を元に、動的なコンテンツの生成を行う。 処理結果を、Webサーバに返す処理 Unicornアプリケーションサーバの一種 NginxはWebサーバの一種

ターミナル(サーバ)

$ sudo yum install nginx

エディタを開いて

$ sudo vim /etc/nginx/conf.d/rails.conf

rails.conf

upstream app_server {
  # Unicornと連携させるための設定。アプリケーション名を自身のアプリ名に書き換えることに注意。
  server unix:/var/www/<アプリケーション名>/tmp/sockets/unicorn.sock;
}

# ()で囲った部分をブロックと呼ぶ。サーバーの設定ができる
server {
  # このプログラムが接続を受け付けるポート番号
  listen 80;
  # 接続を受け付けるリクエストURL ここに書いていないURLではアクセスできない
  server_name <Elastic IP>;

# 接続が来た際のrootディレクトリ
  root /var/www/<アプリケーション名>/public;

# assetsファイル(CSSやJavaScriptのファイルなど)にアクセスが来た際に適用される設定
  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  try_files $uri/index.html $uri @unicorn;

  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://app_server;
  }

  error_page 500 502 503 504 /500.html;
}

POSTメソッドでもエラーが出ないようにする

[ec2-user@ip-172-31-25-189 ~]$ cd /var/lib
[ec2-user@ip-172-31-25-189 lib]$ sudo chmod -R 775 nginx  

。Nginxを再起動して設定ファイルを再読み込み

[ec2-user@ip-172-31-25-189 ~]$ sudo service nginx restart