컴퓨터를 웹 서버로 사용하는 것에 대한 질문이 있습니다. 왜 특정 컴퓨터가 웹 서버가 될 수 있습니까? 웹 서버가 될 수있는 기능은 무엇입니까? 컴퓨터가 웹 서버 역할을 할 수없는 경우가 있습니까?
컴퓨터를 웹 서버로 사용하는 것에 대한 질문이 있습니다. 왜 특정 컴퓨터가 웹 서버가 될 수 있습니까? 웹 서버가 될 수있는 기능은 무엇입니까? 컴퓨터가 웹 서버 역할을 할 수없는 경우가 있습니까?
답변:
네트워크에 연결하고 웹 서버 소프트웨어를 실행할 수 있다면 거의 모든 컴퓨터를 [웹] 서버로 사용할 수 있습니다. 웹 서버는 매우 단순 할 수 있고 무료 및 오픈 소스 웹 서버가 있으므로 실제로 모든 장치는 웹 서버 역할을 할 수 있습니다.
더 큰 문제는 네트워킹 측면입니다. 시스템이 서버로 작동하려면 다른 시스템이 해당 시스템에 액세스 할 수 있어야합니다. LAN에서만 사용한다면 걱정할 필요가 없습니다. 그러나 더 넓은 인터넷에서 사용하려면 데이터를 라우팅해야합니다. 이를 위해서는 서버와 연결된 고정 IP 주소 (또는 라우터를 통해 전달 된 포트) 또는 도메인 이름 / 하위 도메인을 변경되는 동적 IP 주소에 매핑 할 수있는 외부 서비스가 필요합니다.
(FWIW, 기본 웹 서버 역할을 할 수있는 10 달러의 컴퓨터 를 구입할 수 있습니다.)
물론 모든 장치가 웹 서버 역할을 할 수는 있지만 웹 사이트의 기능은 크게 다를 수 있으며 저렴한 장치 (또는 느린 연결)는 특정 웹 사이트가 무엇인지에 따라 요구 사항을 충족하지 못할 수 있습니다.
위의 모든 내용은 웹 서버에 대해 이야기하지만 거의 모든 유형의 서버에 대해서도 마찬가지입니다.
전혀 까다 롭지 않습니다. "웹 서버"의 정의에만 의존합니다.
마이크로 컨트롤러처럼 단순한 장치에서도 "웹 서버"를 실행할 수 있습니다.
최소한의 웹 서버가해야 할 일을 고려해 봅시다. HTML로도 클라이언트에 텍스트를 출력 할 필요는 없습니다. 요청이 요청임을 알고 적절하게 응답해야합니다. "클라이언트"가 로컬 인 경우 네트워크 연결이 필요하지 않습니다. 완전히 무의미한 웹 서버가 될 것입니다.
이것들 중 하나에 해당하는 웹 서버가 될 것이다 .
클라이언트에 대한 네트워크 연결 추가 (이더넷은 좋지만 wifi에서 실행되는 웹 서버에 연결할 수없는 기술적 이유는 없습니다) 및 클라이언트에서 라우팅 할 수있는 것이 더 좋습니다.
5 달러짜리 ESP8266 – Wi-Fi가 내장 된 저렴하고 최소한의 마이크로 컨트롤러는 대부분의 기본 컨텐츠를 처리 할 수 있습니다.
나는 파이썬을 사용하여 빠른 파일 공유를 위해 그런 것을 사용합니다. 마이크로 컨트롤러에서 이와 같은 것을 쓰거나 심지어 전화로 실행할 수도 있습니다.
정적 콘텐츠가 지루합니다. 역동적 인 언어를 추가하면 더 무거운 웨이트 시스템을 생각해야합니다. Linux 또는 Windows를 실행하는 것이 좋습니다.
이 시점에서 소비자 라우터, UI의 웹 페이지를 사용하는 작은 응용 프로그램 등을 말하고 있습니다.
웹 서버는 복잡한 문제가 아니며 5 줄의 bash 로 작성 하여 Linux에서 실행할 수 있습니다 . 이제 운명 ...하지만 운명을 실행할 수있는 모든 시스템은 웹 서버를 실행할 수 있습니다.
좋은의 주어진로드를 처리 할 수있는 웹 서버 설정이 다소 까다 롭습니다.
말 그대로 다음과 같은 경우 모든 컴퓨터가 웹 서버가 될 수 있습니다.
그러나 충분할까요? 이제 까다로운 질문입니다.
컴퓨터가 전체 웹 사이트 (예 : 학교, 회사, 박물관)에 최신 웹 페이지 또는 웹 응용 프로그램을 제공하는 웹 서버가 되려면 :
그러나 이는 소규모 작업의 경우 최소한이었습니다. 작업이 커질수록 (즉, 트래픽이 많을수록 정적 페이지 대신 복잡한 웹 앱을 제공함) 요구가 커집니다. 결국에는 다음이 필요합니다.
전 세계에 서비스를 제공하기 위해 인터넷 인프라를 활용하려면 다음이 필요합니다.
이것이 없으면 잠재적 인 웹 서버 만 있으면 됩니다.
프로그래밍 / 소프트웨어 관점 :
네트워크 어댑터에서 포트 80을 청취 할 수있는 프로그램입니다. 그것은 당신이 가진 OS에서 실행됩니다. HTTP 정의에 따라 요청을 처리 할 수 있습니다.
모든 포트를 수신하는 프로그램은 동일한 네트워크의 모든 컴퓨터에서 액세스 할 수 있습니다. 이상적으로는 알려진 표준 포트 여야합니다 (HTML 서버의 경우 80 및 8080, 사용자 지정 응용 프로그램의 경우 1024 이상 선택). 개발중인 동일한 컴퓨터에서 네트워크 연결 가능 프로그램 개발을 실행하는 것도 일반적인 관행입니다.
localhost를 통해 연결할 수있는 경우 동일한 네트워크 내의 어느 곳에서나이 시스템과 해당 네트워크 어댑터에 대한 경로가있는 다른 곳에서 연결할 수 있습니다.
주의 사항 : 기본 설치의 많은 올인원 개발 환경은 로컬 호스트에 대한 액세스를 제한합니다. 결국 인터넷에서 관리 도구에 접근 할 수 없도록해야합니다.
하드웨어:
하드웨어는 "XP 또는 Linux를 실행하는 10 살짜리 컴퓨터"에서 시작하여 "128 코어, RAID 2 개와 SSD의 256TiB를 급습으로"어딘가에서 끝납니다. DB는 다른 서버에서도 실행됩니다. . 웹 응용 프로그램은 병렬화가 가능한 경향이 있으므로 해당 서버의 클러스터를 사용하여 웹 응용 프로그램을 훨씬 더 향상시킬 수 있습니다. 지오 캐스트. 그리고 분산 디자인. 그리고 다른 많은 것들. 그것은 우리가 말하는 규모에 전적으로 달려 있습니다.
가장 간단한 웹 서버는 사용중인 라우터입니다 (btw). 이들은 모두 구성 목적으로 웹 서버를 실행하고 Linux에서 호스팅됩니다 (모든 DHCP 및 NAT 작업을 수행함).
네트워킹 :
어디서든 인터넷을 포함하여 - - 지금 다른 네트워크 경로를 갖는 완전히 다른 이야기와 훨씬 더 힘들어 응용 프로그램을 프로그래밍보다 부분입니다. 라우터의 NAT와 통신사 등급의 NAT 사이에서이 작업은 정말 어려워졌습니다.