Nginxの設定ファイルをconf.dディレクトリに作成して、Mezzanineを動かしてみる


Mezzanineのインストールから設定まで | kazsoga(曽我一弘)ブログ
の続きとなるメモ。

Nngixの設定ファイルは、
/etc/nginx/nginx.conf
にある。

で、これを編集して運用しても良いのだけれど、できる限り、デフォルトのフィアルを変更せずに運用したいという要望がある。

で、Nginxでは、conf.dディレクトリに.confを作成すると、起動時に読み込んでくれるという設定がある。

で、今回はそれを試して見る。

まず、conf.dディレクトリ以下にappname.confを作成する。

これは、普通にviで作成。
sudo vi /etc/nginx/conf.d/appname.conf

で、以下の内容を設定。

  server {
      listen       80;
      server_name  ドメイン名;

      location /static {
             alias /home/ec2-user/projectname/static/;
      }

      location / {
          try_files $uri @proxy_to_app;
      }

      location @proxy_to_app {
          proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $http_host;
          proxy_set_header X-FORWARDED_PROTO https;
          proxy_redirect off;
          proxy_pass http://127.0.0.1:8000;
          proxy_connect_timeout 600s;
          proxy_read_timeout 600s;
      }

      # redirect server error pages to the static page /40x.html
      #
      error_page  404              /404.html;
      location = /40x.html {
          root   /usr/share/nginx/html;
      }

      # redirect server error pages to the static page /50x.html
      #
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   /usr/share/nginx/html;
      }
  }

で、Nginxを再起動。
sudo /etc/init.d/nginx restart

で、設定したドメインにアクセスするとレイアウトが崩れてた。

これは、当然で、もともとのNginxの設定ファイルのuserはnginxなので、/home/のユーザのディレクトリにはアクセスできない。

で、作成したMezzanineのプロジェクトを/usr/localに移動。

で、appname.confの内容を変更。

  server {
      listen       80;
      server_name  ドメイン名;

      location /static {
             alias /usr/local/projectname/static/;
      }

      location / {
          try_files $uri @proxy_to_app;
      }

      location @proxy_to_app {
          proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $http_host;
          proxy_set_header X-FORWARDED_PROTO https;
          proxy_redirect off;
          proxy_pass http://127.0.0.1:8000;
          proxy_connect_timeout 600s;
          proxy_read_timeout 600s;
      }

      # redirect server error pages to the static page /40x.html
      #
      error_page  404              /404.html;
      location = /40x.html {
          root   /usr/share/nginx/html;
      }

      # redirect server error pages to the static page /50x.html
      #
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   /usr/share/nginx/html;
      }
  }

で、Nginxを再起動。
sudo /etc/init.d/nginx restart

レイアウト崩れが治りました。

mezzanine

NginxのUser名を変更するという方法もありますが、個人的にはあまり好ましくないなあと思ったり。

また、Supervisorを使えばいろいろ変わるかもしれません。