0

Cài đặt Nginx

  1. Định nghĩa

Theo wiki:

Nginx (phát âm là “engine x”) là 1 web server tập trung mạnh mẽ vào khả năng xử lý đồng thời cao, hiệu suất và sử dụng ít bộ nhớ. Nó cũng có thể hoạt động như một reverse proxy server cho các giao thức HTTP, HTTPS, SMTP, POP3 và IMAP, cũng như cân bằng tải (load balancer) và HTTP cache. Được tạo ra bởi Igor Sysoev năm 2002, nginx chạy trên Unix, Linux, các biến thể BSD, Mac OS X, Solaris, AIX, HP-UX và Microsoft Windows.

Ở đây mình dùng để chạy ngầm server thay cho lệnh: rails server 2. Cài đặt

  • Bước 1: Cài đặt

Ubuntu 16.04

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates

# Add our APT repository
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update

# Install Passenger + Nginx
sudo apt-get install -y nginx-extras passenger

Ubuntu 14.04


sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates

# Add our APT repository
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update

# Install Passenger + Nginx
sudo apt-get install -y nginx-extras passenger
  • Bước 2: Setting

-Chạy lệnh:

/usr/bin/passenger-config --ruby-command

copy link dòng "To use in Nginx : passenger_ruby"

-Mở file: /etc/nginx/nginx.conf

bỏ comment dòng

#include /etc/nginx/passenger.conf;

-Mở file: /etc/nginx/passenger.conf

thay link của passenger_ruby bằng link vừa copy được

-Vào project, chạy lệnh:

bundle exec rake secret

copy đoạn kí tự

-Mở file config/secrets.yml

thay secret_key_base: của môi trường cần deploy bằng đoạn kí tự vừa copy(ở đây demo là development)

-Chạy lệnh:

chmod 700 config db
chmod 600 config/database.yml config/secrets.yml
bundle exec rake assets:precompile db:migrate RAILS_ENV=developmet

nếu xảy ra lỗi listen error, chạy lệnh:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

-Mở file: /etc/nginx/sites-available/default

comment 2 dòng:

listen 80 default_server;
listen [::]:80 default_server;

-Tạo file trong đường dẫn: /etc/nginx/sites-available/ishipper

(ở đây ishipper là tên project)

thêm đoạn sau vào file vừa tạo:

server {
  listen 80 default_server;
  server_name 192.168.1.13;  #ip của server, ở đây mình chạy trên máy tính nên dùng ip của máy
  passenger_enabled on;
  passenger_app_env development; # môi trường muốn deploy, ở đây demo  là development
  root /home/o_o/ishipper/public; # đường dẫn đến project + "/public"
}

-Chạy lệnh:

sudo ln -s /etc/nginx/sites-available/ishipper /etc/nginx/sites-enabled

-Reload nginx:

sudo nginx -s reload

Bây giờ bạn có thể vào địa chỉ 192.168.1.13, thay vì vào localhost:3000 như trước

tài liệu tham khảo:

https://asciinema.org/a/42787

https://www.phusionpassenger.com/library/config/nginx/reference/


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí