LoginSignup
6
7

More than 5 years have passed since last update.

初めての Nginx の日記

Last updated at Posted at 2016-06-17

授業のグループ課題で Rails をデプロイしなければならないので, Nginx の勉強を初めてみた.

ネットワークのこととか何もわからない学生がNginx unicorn rails で AWS にデプロイするまでの日記(自分用のメモなのでゴミかす汚い)

1日め

  1. vagrant で CentOS7.0 の環境を作る
  2. nginx をインストール
  3. /etc/nginx/conf.d/default.conf/etc/nginx/conf.d/local.conf にコピー
  4. /etc/nginx/conf.d/default.conf/etc/nginx/conf.d/default.conf.bk にしておく

/etc/nginx/conf.d/local.conf をいじってみる

/etc/nginx/conf.d/local.conf
server {
    listen       80;
    server_name  localhost;

    access_log  /var/log/nginx/access.log;

    location / {
        root   /usr/share/nginx/html;
        index  index.htm;
        proxy_pass http://localhost:80;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

nginx を再起動して curl http://localhost を叩いてみる
index.html が返ってるくると思ってたら, 何も帰ってこない.

ログには 127.0.0.1 - - [17/Jun/2016:10:11:36 +0200] "GET / HTTP/1.0" 499 0 "-" "curl/7.29.0" がいっぱい書いてあった

2日め

期間が空いてしまったけど頑張る

とりあえず, vagrant 上で rails s できるようにする

  1. rbenv で ruby のインストール
  2. mysql のインストールで詰まったけどここで解決
  3. git flow のインストール
  4. ファイアーウォール関連がだめだったので参考1, 参考2で解決

ファイアーウォール
vi /etc/sysconfig/iptables
で設定を確認


  *filter
  :INPUT ACCEPT [0:0]
  :FORWARD ACCEPT [0:0]
  :OUTPUT ACCEPT [0:0]
  -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  -A INPUT -p icmp -j ACCEPT
  -A INPUT -i lo -j ACCEPT
  -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  -A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
  -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
  -A INPUT -j REJECT --reject-with icmp-host-prohibited
  -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  COMMIT

dport のあたりを使いたいポートに指定しとく

ystemctl start iptables.service これでiptabels を再起動

起動 & mac からアクセス出来た

unicorn の設定

Rails 4.2 + Unicorn + Nginx でアプリケーションサーバの構築 ここみたら出来た

nginx の 設定

nginx を起動しているユーザをroot にすべき
http://qiita.com/okitsutakatomo/items/d98e3f4e9120c622ac44

unicorn の sock と nginx の sock をあわせる

ホストPCから見れた

と思ったら怒られた

production の シークレットなんちゃらを設定

見れたけど アセットプリコンパイルしてなかった
のでした

bundle exec rake assets:precompile RAILS_ENV=production

しかし, だめ

nginx の location に assets を追加しなきゃダメっぽいん

location /assets/ {
  root   /rails_root/public; # 明示的にこれを追加
}

でけた!

参考

Centosにrails環境を構築

CentOSにgit-flowをインストールする方法

6
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7