Tôi có một máy chủ chuyên dụng mà tôi hiện đang chạy 4 trang web PHP. Máy chủ được cấu hình với apache + nginx. Bất cứ khi nào tôi lưu trữ các trang web php tôi đặt các tập tin trên thư mục public_html và thats nó, nó bắt đầu chạy. Nhưng bây giờ tôi muốn cài đặt ứng dụng nodejs. Tôi chỉ bối rối về cách xử lý file server.js? và làm thế nào để giữ cho nó chạy? tôi nên sử dụng pm2 hoặc mãi mãi để giữ cho nó chạy mãi mãi trên máy chủ ubuntu của tôi. Ngoài ra cách chạy trang web với tên miền như example.comCách triển khai ứng dụng nodejs trên máy chủ php/apache?
Trả lời
Trong NodeJS, bạn có thể sử dụng thứ gì đó có sẵn như thể hiện hoặc về cơ bản cuộn máy chủ web của riêng bạn, điều này khiến cho âm thanh khó khăn thực sự đơn giản trong nút ...
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(3000);
Mãi mãi và PM2 là nơi tốt nhất để bắt đầu nếu bạn muốn giữ dịch vụ chạy trên máy chủ của mình. Mãi mãi đã dài hơn PM2, nhưng tôi tin rằng PM2 có nhiều tính năng phong phú hơn Forever (mãi mãi là hơi đơn giản để sử dụng).
Liên quan đến apache hoặc nginx, bạn có thể sử dụng chúng để chuyển tiếp các yêu cầu lên quy trình nút của mình. http theo mặc định chạy qua cổng 80, cổng howerver 80 đã được sử dụng bởi quá trình apache của bạn. Những gì tôi đề nghị là chạy ứng dụng nodejs của bạn trên một cổng khác (ví dụ 3000) và sử dụng máy chủ web hiện tại của bạn (apache, ligtthpd, nginx vv) như một proxy ngược, tôi đã bao gồm một thiết lập ví dụ bên dưới.
Apache
<VirtualHost example.com:*>
ProxyPreserveHost On
ProxyPass /api http://localhost:3000/
ProxyPassReverse /api http://localhost:3000/
ServerName localhost
</VirtualHost>
Lighttpd
$HTTP["host"] == "example.com" {
server.document-root = "/var/www/example.com"
$HTTP["url"] =~ "(^\/api\/)" {
proxy.server = (
"" => (
(
"host" => "127.0.0.1",
"port" => "3000"
)
)
)
}
}
nginx
http {
...
server {
listen 80;
server_name example.com;
...
location /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
rewrite ^/api/?(.*) /$1 break;
proxy_pass http://localhost:3000;
}
...
}
}
Trong các ví dụ trên bất kỳ yêu cầu đến http://example.com/api sẽ được chuyển hướng đến quy trình nút của bạn chạy trên cổng 3000.
Ý tưởng ở đây là bạn sử dụng máy chủ web để phân phát tệp tĩnh của mình (ví dụ: css) và quy trình nút của bạn để phân phát ứng dụng.
- 1. Lỗi trên triển khai một ứng dụng NodeJS trong Heroku
- 2. Triển khai Máy chủ NodeJS Loại Bản ghi
- 3. Xem các Ứng dụng Triển khai trong Máy chủ Weblog
- 4. Triển khai Django trên máy chủ apache
- 5. triển khai máy chủ oauth2 và máy chủ api riêng
- 6. Làm cách nào để triển khai ứng dụng khách liên kết sâu trên máy chủ HATEOAS?
- 7. Làm cách nào để triển khai EJB trên máy chủ?
- 8. Triển khai máy chủ GlassFish
- 9. Kiến trúc và triển khai ứng dụng đa năng trong máy chủ ứng dụng GlassFish
- 10. Triển khai ứng dụng Django trên nGINX
- 11. Triển khai máy chủ Node.js sản xuất
- 12. Làm cách nào để triển khai ứng dụng Rails cho VPS (hoặc máy chủ chuyên dụng)?
- 13. Triển khai ứng dụng góc trên IIS
- 14. Delphi triển khai máy chủ REST
- 15. Triển khai nóng với máy chủ Weblogic?
- 16. Cách triển khai ứng dụng Flask trên Webfaction?
- 17. Triển khai cho Máy ứng dụng tạo lỗi với gulp?
- 18. Playframework 2.1.1 triển khai trên máy chủ sản xuất
- 19. Tôi có thể triển khai .war trên máy chủ nginx
- 20. AWS Beanstalk sử dụng NPM khi triển khai ứng dụng Nodejs như thế nào?
- 21. Triển khai máy chủ HTTP RxJS + node.js?
- 22. triển khai máy chủ WebSocket cho Delphi
- 23. Triển khai ứng dụng Perl
- 24. Triển khai ứng dụng AngularJS trên tomcat
- 25. Maven triển khai nhiều máy chủ Tomcat
- 26. Sử dụng Capistrano để triển khai ứng dụng Rails cho nhiều máy chủ web
- 27. Triển khai máy chủ WebDAV trong C#?
- 28. Làm cách nào để triển khai ứng dụng máy chủ socket không đồng bộ hiệu suất cao trong PHP?
- 29. Triển khai Rails ứng dụng trên Bluehost
- 30. asp.net ứng dụng cốt lõi triển khai trên IIS đáp ứng 500 máy chủ nội bộ lỗi
OK Tôi sẽ thử ngay bây giờ – John
Khi tôi thực hiện cài đặt này và khởi động lại apache, nó không khởi động. nói configtest thử nghiệm thất bại – John