Apache를 Node.js로 바꿀 수 있습니까?
Cent에서 웹사이트를 실행하고 있습니다.일반적으로 의심되는 OS(Apache, MySQL 및 PHP)를 사용합니다.이 웹 사이트가 처음 시작되었을 때부터 이 웹 사이트는 상당히 발전하여 이제는 실시간 알림과 같은 좀 더 고급스러운 작업을 수행하고 싶습니다.제가 읽은 바로는 아파치가 이 일을 잘 처리하지 못합니다.Apache만 Node.js로 대체할 수 있는지 궁금합니다(그래서 "LAMP" 대신 "LNMP"가 될 것입니다).
온라인으로 해결 방법을 검색해 보았지만 찾지 못했습니다.제가 읽은 것을 올바르게 해석하고 있다면 대부분의 사람들은 Node.js가 Apache와 PHP를 함께 대체할 수 있다고 말하는 것 같습니다.하지만 기존의 PHP 코드는 많이 가지고 있기 때문에 보관하고 싶습니다.
아직 분명하지 않은 경우를 대비해서, 저는 꽤 혼란스럽고 약간의 깨달음이 필요합니다.감사합니다!
만약 당신이 자바스크립트로 당신의 PHP를 다시 쓸 준비가 되어 있다면, Node.js는 당신의 Apache를 대체할 수 있습니다.
서버와 클라이언트 사이에 역프록시 모드로 실행되는 Apache 또는 NGINX 인스턴스를 배치하는 경우, 모든 PHP를 JavaScript 코드로 완전히 바꿀 수 있을 때까지 Node.js의 JavaScript에서 일부 요청과 Apache-hosted PHP에서 일부 요청을 처리할 수 있습니다.이것은 행복한 매체일 수 있습니다: 웹소켓은 Node.js에서 작동하고, Apache + PHP에서는 더 일상적인 작업입니다.
이벤트/비차단 아키텍처 덕분에 Node.js가 Apache보다 빠를 수 있지만 Apache 기능의 일부를 대체하는 모듈/라이브러리를 찾는 데 문제가 있을 수 있습니다.
Node.js 자체는 웹 응용 프로그램의 서버 측 내용과 실시간 부분을 비교적 빠르게 구축할 수 있는 경량의 하위 수준 프레임워크이지만 Apache는 훨씬 더 광범위한 구성 옵션과 "고전적인" 웹 서버 지향 기능을 제공합니다.
PHP를 express.js와 같은 node.js 기반 웹 애플리케이션 프레임워크로 대체하고 싶지 않다면 Apache에 머물러야 합니다(또는 성능 문제가 있으면 Nginx로 마이그레이션하는 것을 고려하십시오).
웹 서비스에서 Node.js가 미래라고 생각하지만, 기존 PHP 코드가 많다면 Apache/MySQL이 가장 좋습니다.요청을 Node.js에 프록시하도록 Apache를 구성하거나 Node.js가 요청을 Apache에 프록시하도록 구성할 수 있지만 두 경우 모두, 특히 첫 번째 경우에는 일부 성능이 손실된다고 생각합니다.트래픽이 매우 많은 웹 사이트를 운영하고 있지 않다면 큰 문제가 되지 않습니다.
방금 스택 오버플로에 등록했고 아직 승인된 답변에 대해 코멘트할 수 없지만, 오늘 HTTP 프로토콜을 통해 파일을 제공하기 위해 sendfile()을 사용하는 간단한 Node.js 스크립트를 만들었습니다.(승인된 답변이 링크되는 기존 예제는 맨 TCP 프로토콜만 사용하여 파일을 전송하고 HTTP 예제를 찾을 수 없어 직접 작성했습니다.)
그래서 저는 누군가가 이것을 유용하게 생각할 것이라고 생각했습니다.sendfile() OS 호출을 통해 파일을 제공하는 것이 "사용자 랜드"를 통해 데이터를 복사할 때보다 빠를 필요는 없지만 CPU와 RAM을 덜 사용하게 되어 기존 방식보다 더 많은 수의 연결을 처리할 수 있게 됩니다.
링크: https://gist.github.com/1350901
내가 말하는 것을 정확히 설명하는 이전 SO 게시물(문서 + socket.io + 노드)
저는 당신이 socket.io 과 함께 어떤 호스트:8000에 노드 서버를 설치하고 socket.io 클라이언트 코드를 태그에 붙이고 최소한의 작업으로 많은 작업 없이 socket.io (실시간 베이비)로 기존 앱을 흔들 수 있다고 생각합니다.
노드가 유일한 백엔드 서버가 될 수 있지만 노드는 이름에 맞게 노드가 되기를 원합니다.얼마 전에 Ryan Dahl이 PHP 사용자 그룹에게 한 강연을 확인했는데, 그는 여러 노드 프로세스가 서로 작업하고 대화하는 비전과 관련된 이름 노드를 언급했습니다.
요즘은 LAMP 대 MEAN입니다.직접적인 비교는 http://tamas.io/what-is-the-mean-stack 를 참조하십시오.
물론 M, E, A는 다소 가변적입니다.예를 들어 최신 koa가 (E)express를 대체할 수 있습니다.
그러나 Apache를 Node.js로 바꾸는 것만으로는 웹 스택을 현대화할 수 없습니다.
언급URL : https://stackoverflow.com/questions/5346055/can-i-replace-apache-with-node-js
'IT' 카테고리의 다른 글
여러 프로세스 간에 결과 대기열 공유 (0) | 2023.07.27 |
---|---|
RegExp에 대한 유형 (0) | 2023.07.27 |
Spring Boot에서는 머리가 없지만 Spring이나 플레인 자바에서는 머리가 없다고 Swing은 생각하는 이유는 무엇입니까? (0) | 2023.07.22 |
임시 테이블 생성으로 인해 2개 스크립트 대기 중입니다. (0) | 2023.07.22 |
MySQL 유니언이 insert and select 문에서 작동하지 않습니다. (0) | 2023.07.22 |