티스토리 뷰
HTTPD (Apache) + Nginx
# yum install -y httpd
# systemctl start httpd
conf 파일 위치
httpd.conf의 주요 옵션
웹서비스 설정 파일들이 모여있는 경로
모든 IP에 대해 80번 포트로 서비스한다
각종 모듈 파일의 위치 (필요할때 가져다 쓰는 방식)
웹서비스를 실행시키는 사용자와 그룹
웹서버를 탈취당해도 여기까지의 권한만 뺏긴다
서버의 관리자명
함부로 root로 설정해놓으면 좋지 않으므로 팀 메일로 지정한다
서버네임은 굳이 지정하지 않아도 DNS에 의해 알아서 동작한다
AllowOverride : 사용자 인증 사용 여부, 사용하면 인증 config 파일을 지정한다
최상위 디렉터리에 관한 접근 권한
보통 사용자는 최상위 디렉터리에 대한 접근과 수정 권한을 가지지 못하기 때문에 전부 deny 하였다
웹 컨텐츠 디렉터리의 경로
해당 디렉터리와 상위 디렉터리에 접근 권한을 허용해둔 모습 (Default)
144번째 줄의 Indexes는 디렉터리 리스닝 기능 (보통은 지워두는 편)
여기서도 사용자 인증을 한다면 config 파일을 지정
웹 서비스에 처음 진입했을 때 보여줄 파일
파일에 대한 접근 권한 설정
물론 deny 해두어야 한다
.htaccess 파일에 대한 접근 권한 또한 다룬다 (후술)
error log의 위치
error log는 debug, info, notice, warn, error, crit, alert, emerg 중 warn 단계부터 기록이 되며, 기록은 변수의 형태로 기록된다
동적인 페이지 서비스를 위한 cgi 설정
멀티미디어 파일을 위한 mime 파일
이외 설정들은 해당 형식으로 생성하면 이 파일에서 읽어들일 수 있다
index 페이지를 만들어보자
인덱스 페이지를 간단하게 만들어놓고
80번 포트를 열어준다
그리고 윈도우에서 접속해보면 이렇게 잘 나온다
WEB : Apache
LAMP : Linux + Apache + MariaDB + PHP
WEB Database WAP(Middle Ware)
Virtual Host (가상 호스트)
하나의 IP와 Port를 갖고 여러 웹사이트를 서비스하는 방법
여러 웹사이트를 서비스 하는 방법
- 여러 개의 IP가 있을 경우
- 여러 개의 Port를 사용하는 경우
- 사용자들이 Port를 입력해야 하는 번거로움이 발생
- 동일한 IP와 동일한 Port를 이용 : 가상 호스트
- 대부분의 사이트에서 사용하는 방법
ex) 티스토리에서 다수의 고객들이 개별 사이트를 운영하는 방법
https://clouduu.tistory.com/
clouduu 부분이 사용자마다 다르다
naver.com 역시 blog.naver.com이나 cafe.naver.com 등을 운영하는 방식이 가상 호스트 방식
동일한 IP를 가졌더라도 도메인 네임을 비교하고 해당 도메인으로 이동시킨다
레코드를 등록할 때 해당 부분을 추가시켜주면 된다
ex)
서비스할 페이지를 레코드에 등록시킨다
httpd.conf에서의 설정 추가는 가장 아랫줄에 추가해주면 된다!
서비스할 도메인 폴더를 만들어주고 웹 페이지를 생성해주자
여기까지 잘 됐으면 도메인 네임을 입력했을 때 웹페이지가 잘 뜰것이다
IP 접근제한
htaccess 파일에서 인증 네임, 암호화 타입, 인증 유저 파일 경로, 인증이 필요한 유저를 설정할 수 있다
준비가 되었으니 Virtual host 파일도 생성하자
이런식으로 만들어주면 된다
Order에 의한 접근 제한은 deny, allow의 순서에 의해 적용된다
allow를 뒤에 적었으면 allow가 먼저, deny가 나중에 적용된다
접근 권한과 인증에 대한 설정도 여기에 적을 수 있다
이제 인증 파일에 사용할 수 있는 인증 전용 계정을 생성해보자
인증 전용 계정은 useradd와는 다른 방법으로 생성한다
이렇게 htpasswd 옵션으로 만든다
여기서는 /web 디렉터리를 만들어서 그 안에 계정을 생성해 관리하기로 했다
b 계정은 c옵션 없이 만들어보았다
IP인증 설정을 마치면 지정 IP와 계정 이외에는 페이지 접근이 불가능해야한다