Linux vỡ lòng, vừa làm vừa note lại
Xem các module đã enabled trong Apache
httpd -M
Kiểm tra phiên bản Apache hiện tại
/usr/sbin/httpd -v
Khi gặp lỗi > error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
Thì chạy 2 lệnh sau để fix lỗi
ldconfig
service httpd start
Xem hệ điều hành linux 32bit hay 64bit
uname -m
Nếu thấy kết quả x86_64 thì có nghĩa là x64Tải nodejs về
curl --silent --location https://rpm.nodesource.com/setup_9.x | sudo bash -
Sau đó cài đặt
sudo yum -y install nodejs
Để biên dịch (compile) và cài đặt các native addons từ npm chúng ta cần cài đặt build tools
sudo yum install gcc-c++ make
Xem phiên bản nodejs và npm đã cài đặt
node -v
npm -v
Kiểm tra cài đặt nodejs bằng cách tạo file
nano hello_world.js
Sau đó dán nội dung này vào và lưu file
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello NodeJs + Apache!\n');
}).listen(8080, '0.0.0.0');
Chạy test ứng dụng nodejs
node hello_world.js
Để chạy ứng dụng nodejs chúng ta cần có pm2 (Production Process Manager for Node.js applications with a built-in Load Balancer), cài đặt pm2
sudo npm install pm2@latest -g
Chạy ứng dụng nodejs
pm2 start hello_world.js
Cách dùng mod_proxy của Apache để truy cập ứng dụng nodejs qua Apache webserver, bằng cách thêm 3 dòng sau vào
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
Enable socket.io
npm install --save express@4.15.2
npm install --save socket.io
Sau đó thay nội dung trong
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://localhost:8080%{REQUEST_URI} [P,L]
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPass /socket.io http://localhost:8080/socket.io/
ProxyPassReverse /socket.io http://localhost:8080/socket.io/
/etc/rc.d/init.d/httpd restart
Sau đó viết ứng dụng nodejs dùng socket.io theo hướng dẫn demo tại https://socket.io/get-started/chat/Xem thử kết quả: https://vietmeta.com
Bình luận gần đây