웹 서버 실행의 기본 사항은 무엇입니까?


26

웹 서버 관리 시작에 대한 제안 된 정식 질문 입니다.

시작 SysAd이거나 WebOps를 처음 사용하거나 경험이 부족한 Web Server SysAd를 거의 또는 전혀 갖추고 있지 않은 소규모 팀 (현재는 감당할 수 없다고 가정)에서 비즈니스를 위해 Web Server를 구성하고 보호하려면 어떻게해야합니까?


sysad를 사용하면 sysad가 아닌 사람들에게 문제가 있음을 의미하는 두 배의 이점을 언급했습니다. 그러면 Surey는 Q & A를 sysads et al의 Server Fault 범위를 벗어납니다. 아마도 슈퍼 유저가 더 좋은 곳일까요?
user9517은 GoFundMonica

8
FAQ를 읽은 것은 '시스템 관리 질문을하는 기술 전문가'로 해석됩니다. 나는 이런 종류의 질문을 SysAd가 아닌 기술적 인 사람들 (대부분 개발자)로부터 여러 번 요청한 것을 보았으며, 실제로 도움을주는 대신 가혹한 반응을 보이는 경우가 많습니다. 이 질문은 어디서 시작해야하는지에 대한 정식 답변이 될 수있는 이유와 그들이 실제 SysAd 도움말 ASAP를 최대한 빨리 고용해야하는 이유입니다. (그리고이 특별한 질문에 다시 대답 할 필요가 없기를 바랍니다.
gWaldo

답변:


32

시작하기 전에 :

양질의 사람들이 있으면 돈을 절약 할 수 있습니다. 그냥 같은 좋은 변호사 가진 아마 돈 절약, 종종 단순히 당신을 도움으로써 비용이 많이 드는 실수를 방지하는 것입니다 품질 SysAd을 가진, (맹세에 대한 가능성 NSFW) 또는 회계사. 당신은 지금 전문 지식을 지불 할 돈이 없을 수도 있지만, 최대한 빨리 투자해야합니다.

이 질문에 대한 간단한 대답은 없습니다. 이 질문을하는 사람이라면이 질문이 전문가들이 수년간의 연구와 실습에 투자하는 분야의 핵심이라는 것을 알아야합니다. 개발자와 유사한 질문은 "웹 응용 프로그램을 어떻게 작성합니까?"; 물론 Ruby-on-Rails와 RoR "Hello World"를 설치하는 방법을 알려 드릴 수 있습니다. 그것이 '질문에 대답'하지만 실제로는 도움이되지 않습니다. 이 Q / A는 실제로 당신을 돕기위한 시도입니다.

당신은 알고 있어야:

웹 서버 관리는 큰 주제이며 본질적으로 여러 분야와 연계되어 있습니다. 이를 위해서는 TCP / IP, 호스트 OS, WebServer 응용 프로그램 및 응용 프로그램 스택 실행에 대한 기본적인 이해가 필요합니다.

읽을 준비를하십시오. 많이 .

요구 사항을 식별하십시오.

요구 사항

  • 평범한 정적 웹 사이트 (일부 자바 스크립트 효과가있을 수 있음)를 실행 중이거나
  • 웹 인터페이스가있는 응용 프로그램을 실행하고 있습니까?
  • 지속적인 데이터가 있습니까? (데이터베이스가 필요하십니까?)
  • 사용자 자격 증명이 있습니까? 보안을 유지하기 위해 사용자와 웹 사이트 간의 연결이 필요한 또 다른 이유가 있습니까? (SSL)
  • 당신은 어떤 종류의 지불을 처리하고 있습니까? SSL 요구 사항 외에도 조사해야 할 추가 고려 사항이 있습니다 (지역에 따라 다름). 사용하는 결제 프로세서에 따라 달라집니다.

스택을 식별하십시오.

어떻게 작성하고 실행합니까?

  • 플랫폼 (Windows, Linux, 기타 Unix 등)
  • 앱 요구 사항 (Ruby / Rails, Python, Perl, PHP, .NET 등)
  • 데이터베이스 (...)
  • 캐싱? (정직하게도 지금은 걱정하지 마십시오. 일부 문제를 해결하고 다른 문제를 만들 수 있다는 점에 유의하십시오. 이것은 성능 문제이며 지금 막 시작하려고합니다.)

이러한 선택 중 일부는 다른 사람들에게 알려줄 것입니다. 예를 들어 .NET 앱을 실행중인 경우 MSSQL 및 IIS를 사용하려고합니다. Ruby on Rails를 실행하고 있다면 Linux 서버가 필요할 것입니다. 기타...

제품에 대해 알아보십시오.

스택의 모양을 결정 했으므로 이제 알아야합니다. 이곳에서 대부분의 시간을 보내야합니다. "[제품] 구성"또는 "[제품] 관리자 안내서"를 검색하면 많은 리소스를 얻을 수 있습니다.

예를 들어, Ubuntu에서 Apache를 실행중인 경우 반드시 다음을 읽어야합니다.

스택에 대한 유사한 문서, 기사, 블로그 게시물을 찾으십시오.

최소 설치 :

Apache에는 방대한 모듈이 있지만 PHP를 사용하지 않을 경우 (예를 들어) mod-php를 설치하지 마십시오.

또한 Linux 서버 인 경우 GUI 설치를 피해야한다고 언급해야합니다. GUI는 많은 양의 시스템 리소스를 사용합니다.

사이트 보안 :

  • 기능에 대한 최소한의 권한을 보장하십시오. 이것은 파일 시스템뿐만 아니라 서비스 및 프로세스에도 적용됩니다
  • 불필요한 서비스에 대해서는 서버 포트를 비활성화하십시오. (다시 최소 설치 만하십시오.)
  • 응용 프로그램 인터페이스를 내부 환경으로 제한합니다 (예 : 동일한 서버 (예 : Rails)에서 웹 응용 프로그램을 실행하는 경우 로컬 호스트 만 수신하도록 제한)

결산 중 :

이것은 사이트를 시작하고 운영하기 위해해야 ​​할 일의 시작일뿐입니다. 이것은 서버 유지 관리 문제 나 확장 문제 (프로젝트가 성공해야 함)를 처리하는 방법이나 지식이 풍부한 SysAd가 해결할 다른 수많은 문제를 다루지 않습니다.


최소한으로 실행하는 것이 중요하지만 제거 / 비활성화 / 보호 방법 / 무엇을 명확하지 않을 수 있습니다. 개인 네트워크에서 실행되는 응용 프로그램 서버로 특정 요청 만 전달 / 프록시하는 베어 본, 완전히 방화벽 처리 된 시스템을 공개적으로 제안 할 수 있습니까? 앱에서 사용하는 것과 동일한 환경 일 필요가 없기 때문에 배포 / 구성을 제안 할 수도 있습니다.
Carlos Lima

1
좋은 시작입니다. 다루지 않은 것 중 하나는 반복성입니다. 언젠가는 현재 설정보다 커질 것입니다. 환경 설정에 대한 지시가 반복 가능합니까? 더 나은 방법은 자동화되어 있습니까? 환경을 재생성하거나 외부 리포지토리에 의존 할 수 있도록 모든 소스 패키지를 저장하고 있습니까? 언제 업그레이드해야하는지 어떻게 알 수 있습니까? 적절한 측정 항목을 추적하고 있습니까? 그들에 대해 어떻게보고하고 있습니까?
toppledwagon

@toppledwagon 이것들은 모두 좋은 지적이지만 101 코스를 다루고있었습니다. 당신이 언급 한 모든 것 (일관성 / 구성 관리, 스케일링, 모니터링 / 메트릭 등) 나중에 느낍니다. 솔직히, 나는 그 영역을 탐구하는 것보다 Systems Pro를 얻는 것이 좋습니다.
gWaldo

3
@toppledwagon 일단 그 시점에 도달하면 sysadmin이 필요합니다. 또는 적어도 Sysadmin-as-a-Service입니다.
Michael Hampton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.