Cài đặt Nginx
Bài đăng này đã không được cập nhật trong 7 năm
- Đị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://www.phusionpassenger.com/library/config/nginx/reference/
All rights reserved