Cách thiết lập môi trường phát triển Node.js trên VPS cho nhóm
Trong hướng dẫn này, ta sẽ cài đặt môi trường phát triển Node.js, cho phép bạn nhanh chóng đưa các thành viên group mới vào quá trình phát triển các ứng dụng Node.js của bạn. Phương pháp này cũng có thể được áp dụng nếu nhà phát triển muốn tạo nhiều version ứng dụng đồng thời. Phương pháp này dựa trên Node.js tương tác với Nginx qua  socket  Unix thay vì cổng. Giả sử rằng bạn có các version  phát triển của ứng dụng tại login.dev.nodeapp.com . Ngoài ra,  ta  sẽ giữ các socket cho mọi nhà phát triển trong /tmp , như /tmp/login.dev.nodeapp.com.sock .
Yêu cầu
 Bạn  cần  phải cài đặt Nginx và Node.js. Ngoài ra,  ta  sẽ  giả định  bạn đã có một domain  (ví dụ: nodeapp.com ) được liên kết với VPS của bạn. Lưu ý : bạn cũng nên  cài đặt  bản ghi CNAME ký tự đại diện cho domain   của bạn . Đã có các hướng dẫn  bằng text  về các chủ đề này trên DigitalOcean:
- Cách cài đặt Nginx trên Ubuntu
- Cách cài đặt Node.js với NVM trên VPS .
- Cách cài đặt tên server với DigitalOcean
Cài đặt Nginx
  Ta  nên tạo một file cấu hình Nginx mới /etc/nginx/sites-available/dev.nodeapp.com trong đó có:
server {      listen 80;       server_name ~^(?<login>[a-z]+)\.dev\.nodeapp\.com$;      location / {          proxy_pass http://unix:/tmp/$login.dev.nodeapp.com.sock:$uri$is_args$args;          proxy_set_header Host $host;         proxy_set_header X-Real-IP $remote_addr;         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;     }    } Liên kết cấu hình này với folder  sites-enabled và khởi động lại Nginx:
ln -nfs /etc/nginx/sites-available/dev.nodeapp.com /etc/nginx/sites-enabled/dev.nodeapp.com /etc/init.d/nginx restart Như vậy, Nginx đã sẵn sàng chấp nhận yêu cầu của user và hướng dẫn họ đến bản sao ứng dụng của nhà phát triển, tùy thuộc vào URL. Ví dụ:
http://ivan.dev.nodeapp.com -> /tmp/ivan.dev.nodeapp.com.sock http://anna.dev.nodeapp.com -> /tmp/anna.dev.nodeapp.com.sock Sửa đổi ứng dụng Node.js
Ta sẽ sử dụng một ví dụ web server tối thiểu từ Node.js , nhưng các sửa đổi tương tự có thể áp dụng cho bất kỳ server Node.js nào (như express).
Vấn đề là, ta cần thay đổi hành vi lắng nghe cổng mặc định thành lắng nghe cổng:
var fs = require('fs'); var http = require('http');  var mask = process.umask(0); var socket = '/tmp/' + process.env.USER + '.dev.nodeapp.com.sock';  if (fs.existsSync(socket)) {     fs.unlinkSync(socket); }  http.createServer(function (req, res) {     res.writeHead(200, {'Content-Type': 'text/plain'});     res.end('Hello World\n'); }).listen(socket, function() {     if (mask) {         process.umask(mask);         mask = null;     } });  console.log('Server running at ' + socket);  Đến đây bạn  có thể chạy node app.js ứng dụng node app.js và truy cập nó trên http://yourlogin.dev.nodeapp.com .
Lưu ý: khi Node.js bắt đầu lắng nghe các socket , nó sẽ tạo một file được chỉ định. Nhưng nếu file socket đã tồn tại, Node.js sẽ không bắt đầu lắng nghe. Vì vậy, ta nên đảm bảo ta đã loại bỏ socket khỏi lần chạy trước.
Vấn đề còn lại là, ta nên tạo một socket có đầy đủ quyền truy cập cho tất cả mọi người, như vậy Nginx sẽ có thể sử dụng nó. Nó tốt cho sự phát triển, nhưng có thể không tốt cho việc production .
Và đó là nó, xin chúc mừng! Tất cả những gì bạn cần bây giờ là giới thiệu một nhà phát triển mới để tạo user trên VPS của bạn.
<div class = “author”> Gửi bởi: <a href=osystemhttps://github.com/artjockosystem> Artur Burtsev </a> </div>
Các tin liên quan
 

