Server/Cent OS

Linux Server - HTTP(설치 & 설정)

heyoon2j 2019. 7. 9. 06:03

■ HTTP

- HyperText Transfer Protocol

- WWW 상에서 정보를 주고받는 서버

 

 

○ 설치 및 설정

 

- yum으로 httpd 설치

 

- /etc/httpd/conf.d/welcome.conf : 기본 화면 페이지 <LocationMatch> ~ </LocationMatch>를 주석 처리한다.

 

- HTTP 설정 파일: /etc/httpd/conf/httpd.conf

- ServerTockens: 응답할 Header를 설정. OS로 설정하는 경우 Server의 정보가 나오게 된다. 보안상 최소한의 정보만 제공하도록 Prod로 설정

 

- ExtendedStatus아래쪽 설정에서 server-status를 제공할 때, 자세한 상태 정보를 제공할지 여부 설정

 

- ServerName : Server 호스트 이름 설정. 사용할 호스트 이름을 지정하면 된다. 아래쪽에서 설정을 변경하지 않으면 www.에 대한 호스트를 말한다.

 

- /var/www/html Directory에 대해서 어떤 서비스를 제공할지 설정한다.

- Options에 있는 Indexes를 제거한다. 그래도 두면, Directory의 목록이 출력된다.

 

* Options : 해당 Directory(하위 포함)에 대한 옵션 설정

 1) All : MultiViews를 제외한 모든 옵션이 가능. 기본값

 2) ExecCGI : CGI scripts를 실행할 수 있는 권한을 허용

 3) FollowSymLinks : 서버는 해당 디렉터리에서 심볼릭 링크를 연결

   => 서버가 심볼릭 링크를 따라가더라도 <Directory> sections에 대응하는 경로는 바뀌지 않음

 4) Includes : SSI(Server-side includes)를 허용

 5) IncludesNOEXEC : SSI(Server-side includes)는 허용. #exec 명령과 CGI 스크립트의#include는 허용 안 함

 6) Indexes : 파일 이름을 쓰지 않고 디렉터리로만 이루어진 URL의 요청에 대해, 그 디렉터리에는 DirectoryIndex(e.g. index.html) 파일이 존재하지 않는 경우, 서버는 이 디렉터리의 목록을 출력

 7) MultiViews : Content negotiated MultiViews를 허용 (확장자가 생략되었을 경우 매치되는 파일 목록 또는 파일을

   보여줌)

 8) SymLinksIfOwnerMatch : 서버는 단지 같은 사용자가 소유하고 있는 파일이나 디렉터리 내에서만 심볼릭 링크를

   연결

   => 이 옵션은 <Location> section에서는 무시

 

 

* AllowOverrride Options : 해당 Directory(하위 포함) 접근 제어에 대한 설정, AccessFileName에 명시된 파일에서 설정

 1) none : 어떤 액세스 정보도 참고하지 않음. 제한적인 접근만을 허용할 때 사용한다.

 2) AuthConfig : 인증 선언에 대한 허용

 3) FileInfo : 문서 형식을 제어하는 선언의 허용 (DefaultType, ErrorDocument, AddEncoding, AddLanguage, AddType, LanguagePriority, etc.)

 4) Indexes : 디렉터리 인덱싱을 제어하는 선언을 허용 (AddDescription, AddIcon, AddIconByEncoding, 

   AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,  IndexIgnore, IndexOptions,

   ReadmeName, etc.).

 5) Limit : 호스트 액세스를 제어하는 선언에 대한 허용 (allow, deny and order).

 6) Options : 특별한 디렉터리 기능에 대해서 허용

 7) All : 모든 액세스 정보를 참고함.

 

- UserDir public_html 주석 제거

- 각 사용자 계정에 따른 홈페이지 서비스를 할 수 있게 된다. 해당 계정 Home Directory에 public_html Directory를 추가하면 해당 Directory로 접속하게 된다.

=> www.babo.com/~a/으로 ~ 뒤에 계정을 붙이면 된다.

 

- DirectoryIndex : 웹사이트의 초기페이지 문서로 어떤 파일을 사용할지 Directory Index를 보고 확인한다. 앞에서부터 순차적으로 읽는다.

 

- AccessFileName : Directory에 대해서 접근 제어를 설정한 파일 이름 설정.

 

- server-status 정보에 대한 접근 제한을 설정할 수 있다. Server의 상태 정보를 모니터링할 수 있으므로 관리자만 확인할 수 있게 설정해야 한다.

=> www.babo.com/server-status로 접속

 

- server-info 정보에 대한 접근 제한을 설정할 수 있다. Server의 설정 정보를 모니터링할 수 있으므로 관리자만 확인할 수 있게 설정해야 한다.

=> www.babo.com/server-info로 접속

 

- 가상 호스트를 구성할 때 사용한다(같은 포트에서 여러 웹사이트를 생성할 때 등)

- www에 대한 정보는 위쪽에서 설정했기 때문에 <Directory>를 만들지 않아도 된다.

  ServerAdmin : 관리자 이메일 주소

  DocumentRoot : 홈페이지 디렉터리 위치

  ServerName : 해당 웹 페이지의 도메인

  ErrorLog : 에러 로그 파일 위치

  CustomLog : 로그 파일 위치

 

 

- conf 파일에서 intra에 대해서 AllowOverride AuthConfig를 설정했기 때문에 AccessFile이 필요하다. /intra 폴더 안에 생성한다.

  AuthName : 권한 이름

  AuthType Basic : 인증방법

  AuthUserFile : 허용한 유저의 정보가 저장된 파일 위치

  Require valid-user : 허용할 유저

 

- .htaccess에서 설정한 위치에 Directory와 File 생성.

- htpasswd를 이용하여 패스워드 입력. .auth파일에 처음 입력할 때는 –c 옵션을 붙이고 그다음부터는 붙이면 안 된다. 덮어쓰기 때문이다.

 

- 각 Directory에 보여줄 html 파일 생성 및 편집

 

- httpd는 apache 프로세스가 접근하기 때문에, 홈 디렉터리에서 읽기를 위해서는 권한을 변경해야 한다. 

 

- 80번 포트 방화벽 해제

 

- http 서비스 시작

 

 

○ 여러 개의 Port로 페이지 생성할 때

 

- Listen에 추가 포트를 설정해준다.

 

- <VirtualHost>에 있는 포트를 바꿔준다.

 

'Server > Cent OS' 카테고리의 다른 글

CentOS 7 설치  (0) 2019.07.09
Linux Server - Mail(설치 & 설정)  (0) 2019.07.09
Linux Server - FTP(설치 & 설정 / Passive Mode 포함)  (0) 2019.07.08
Linux Server - DNS(설치 & 설정)  (0) 2019.07.08
Linux Server - DHCP(설치 & 설정)  (0) 2019.07.08