[Centos 7] Apache 서버 구동 (httpd 패키지)
2022. 12. 1. 16:13ㆍ리눅스(Linux)
$ apache 패키지 설치
# yum install -y httpd
$ 설정 파일
# cd /etc/httpd
conf
- 운영에 필요한 파일들
conf.d
- 확장적인 요소에 해당한 파일들
conf.modules.d
- 모듈에 필요한 파일들
logs
- 에러로그, 액세스 로그 정보
modules
- 모듈정보
run
- 상태 정보
# ll /etc/httpd/conf
합계 28
-rw-r--r-- 1 root root 11753 1월 14 02:38 httpd.conf
-rw-r--r-- 1 root root 13064 3월 24 23:58 magic
- 시그니처 값을 분석해서 파일이 text, gz, audio 등등 구분
# cp -a /etc/httpd/ /backup/
- 백업하고 시작, a 옵션 사용시 허가권 소유권 까지 복사
# vi /etc/httpd/conf/httpd.conf
4 # See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
- apache 매뉴얼 볼 수 있는 URL
42 Listen 80
- 여러개 등록 가능
56 Include conf.modules.d/*.conf
- 모듈 설정파일 불러오는 지시자
66 User nobody
67 Group nobody
- 아파치권한을 허용, nodoby변경하면 클라이언트 접근 권한이 거의 없다.
86 ServerAdmin root@localhost
- http 오류관련 메일을 받을 주소 명시
95 ServerName www.itbank.com:80
- 웹서버의 이름 명시
119 DocumentRoot "/apache/html"
- 클라이언트가 서버에게 요청한 파일을 검색할 위치 지정.
- "/var/www/html"(default)에서 "/apache/html" 변경 후 진행
102 <Directory />
- root / 하위 디렉터리의 적용
103 AllowOverride none
- 추가 인증 기능
- 클라이언트가 디렉터리를 인증할 때마다 인증하면 비효율적이다.
- none(추가 인증을사용하지 않겠다)으로 변경
104 Require all denied
- 모든 디렉터리에 접근권한을 거부시키겠다 (기본값)
105 </Directory>
*주석 지우고 진행*
129 <Directory "/var/www/html">
130 Options Indexes FollowSymLinks
- 내 디렉터리 구조를 공개하는 것이기 때문에 거의 사용하지 않는다 / 지워버림
- Indexes: main page를 주려고 했는데 없으면 해당 디렉터리를 나열해서
사용자가 선택할 수 있도록 보여주는 옵션
- FollowSymLinks : 바로가기 링크 보여주는 옵션
131 AllowOverride None
132 Require all granted
133 </Directory>
138 <Files ".ht*">
- 로그인 할 때 .htaccess, .htpasswd 파일 사용
139 Require all denied
140 </Files>
149 ErrorLog "logs/error_log"
- 모든 에러를 logs/error_log로 저장하겠다
156 LogLevel warn
- 로그레벨 설정
*주석 지우고 진행*
158 <IfModule log_config_module>
159 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
- 마지막 로그 포맷 정보 형식 명시, http header 정보에서 가져온다
160 LogFormat "%h %l %u %t \"%r\" %>s %b" common
161
162 <IfModule logio_module>
163 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combi nedio
164 </IfModule>
165 #CustomLog "logs/access_log" common
166 CustomLog "logs/access_log" combined → 새로 정의한 로그포맷
167 </IfModule>
168 <IfModule dir_module>
169 DirectoryIndex index.html
- Main Page를 식별하는 방법, DirectoryIndex에 적혀있는 html을 읽어오고
DocumentRoot내부에 있는 Page들 중에서 찾은 후 클라이언트에게 연결을 해준다.
- 여러개 이름 명시 가능
170 </IfModule>
296 #EnableMMAP off
- 메모리 매핑, 웹서버 처리성능이 올라감, 메모리소모량도 같이 올라감
297 EnableSendfile on
302 IncludeOptional conf.d/*.conf
- conf.d 에 있는파일 불러오기
# apachectl configtest
Syntax OK
- httpd.conf 설정값의 오류가 없는지 확인
# mkdir -p /apache/html
- 지정한 파일위치에 파일을 만들지 않으면 오류가 생긴다.
# cat > /apache/html/index.html
Document Root Test
# systemctl start httpd
# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload
- apache 패키지 데몬 실행 및 방화벽 허용
# vi /etc/httpd/conf.d/welcome.conf
18 Alias /.noindex.html /usr/share/httpd/noindex/index.html
- 각 html 매핑 시켜주는 작업파일
# vi /usr/share/httpd/noindex/index.html
- testing 123 html 페이지 볼 수 있음
$ 가상 호스트 (virtual host)
- host name에 따른 여러 도큐먼트 루트를 사용할 때 쓴다, 하위 도메인
- ex) www.naver.com, comic.naver.com, news.naver.com
# vi /etc/httpd/conf/httpd.conf
121 <Directory "/apache/html">
122 AllowOverride None
123 Require all granted
124 </Directory>
125
126 <Directory "/apache/virtual">
127 AllowOverride None
128 Require all granted
129 </Directory>
- 기존 디렉터리 구문 밑에 새로 작성
# mkdir -p /apache/virtual
# cat > /apache/virtual/index.html
Virtual Host Test
# vi /etc/httpd/conf.d/vhost.conf
## Local Host ##
<VirtualHost *:80>
DocumentRoot /apache/html
ServerName www.itbank.com
</VirtualHost>
## Virtual Host ##
<VirtualHost *:80>
DocumentRoot /apache/virtual
ServerName vvv.itbank.com
ErrorLog logs/vvv-error_log
CustomLog logs/vvv-access_log combined
</VirtualHost>
# apachectl configtest
Syntax OK
# systemctl restart httpd
# vi /var/named/itbank.zone
$TTL 1D
@ IN SOA ns1.itbank.com. root (
0 ; serial
60 ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.itbank.com.
IN NS ns2.itbank.com.
ns1 IN A 192.168.1.100
ns2 IN A 192.168.1.150
www IN A 192.168.1.100
vvv IN A 192.168.1.100
- 새로운 호스트 추가
# systemctl restart named
[ win client ]
C:\Users\ITBANK_TAEHEI>ipconfig /flushdns
Windows IP 구성
DNS 확인자 캐시를 플러시했습니다.
- DNS 테스트 작업시 캐시를 초기화해줘야한다.
- www.itbank.com, vvv.itbank.com 차례로 접속 테스트
$ 사용자별 웹디렉터리 (userdir)
- Userdir은 Apache 모듈로 여러 사용자가 있는 시스템에 Userdir 지시어를 사용하면 각 사용자는 자신의 홈디렉토리 안에 웹사이트를 만들 수 있다.
- http://example.com/~username/에 접근하면 사용자 "username"의 홈디렉토리에서 Userdir 지시어로 지정한 하위디렉토리에 있는 페이지를 가져오게 된다.
# vi /etc/httpd/conf.d/userdir.conf
11 <IfModule mod_userdir.c>
12 #UserDir disabled
13 UserDir public_html
14 </IfModule>
15 <Directory "/home/*/public_html">
16 ## Apache 2.4 users use following ##
17 AllowOverride none
18 Options none
19 Require method GET POST OPTIONS
20
21 </Directory>
# mkdir /home/s1/public_html
# chmod 701 /home/s1
# cat > /home/s1/public_html/index.html
s1 Home Dir
# systemctl restart httpd
http://www.itbank.com/~s1/ 접속
'리눅스(Linux)' 카테고리의 다른 글
[Centos 7] 보안 프로토콜(SSL/TLS) (0) | 2022.12.02 |
---|---|
암호화 기초 알고리즘[ 대칭 키(비밀 키), 비대칭 키(공개 키), 키 교환, 해시 ] (0) | 2022.12.01 |
Web Server (웹 서버) & WAS Server (왓스 서버)& 웹 프로그래밍 (0) | 2022.11.30 |
[Centos 7] DNS ( Domain Name System ) (0) | 2022.11.29 |
[Centos 7] PAM (Pluggable Authentication Modules) 실습 (0) | 2022.11.29 |