블로그 이미지
송시혁

calendar

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

2018. 8. 26. 20:35 리눅스 마스터1급

<웹 >


웹 클라이언트가 HTTP Method URL, 프로토콜 버넞, MIME등을 전송하고 

HTTP서버는 클라이언트의 요구에 데이터, 실제자료, 상태 코드등으로 응답한다.


주요 HTTP 요청 메소드(Method) 


GET       서버에서 자료를 가져오는 요청 

POST    서버에 정보를 저장하도록 하는 요청 

HEAD    GET가 유사하나 HTTP 헤더 정보만 가져옴 

PUT      서버에 자료를 올리 때 사용 

DELETE 서버의 자료를 삭제할 때 사용 



● NGINX

클라이언트에 요청에 응답하기 위해 비동기 이벤트 기반 구조 


아파치 HTTP서버는 프로세스 및 스레드 기반으로 동작하는 구조


● HTTP 응답 


● 1xx Inforamtional


100 continue 

101 Switching protocol 


● 2xx successful 


200 OK

201 Created

202 Accepted 

203 Non-Authoritative Information

204 No content 

205 reset content 

206 Partial Content 




● 3xx Redirection

300 Multiple Choices 

301 Moved Permanently 

302 Moved Temporarily

303 See other

304 Not Modified 

305 Use proxy 



● 4xx(Client Error)


400 Bad Request

401 Uauthorized 

402 Payment Required 

403 Forbidden 

404 Not Found 

405 Method Not Allowed 

406 Not Acceptable 




● 5xx(Server Error)


500 Internal Server Error 

501 Not Implemented 

502 Bad Gateway

503 Service unavailable

504 Gateway timeout 

505 HTTP Version not supported 



● LAMP(Linux Apache Mysql PHP)

=> mysql 먼저 설치, apache , php순으로 설치한다. 


<MPM 주요 모듈 >


● prefork 

=> 프로세스를 제어하는 부모 프로세스는 클라이언트의 요청이 들어온 경우를 대비해 대기하고 있다가 자식 프로세스의 생성 

    여부 등을 관리하는 방식 


● worker 

=> 초기에 시작하는 프로세스의 개수를 지정하고, 페이지 요청이 들어오면 스레드로 처리하는 방식

    지정되 스레드 수를 초과할 경우에 새로운 자식 프로세스를 생성하여 처리하는 방식 

● 해쉬 관련 명령어 

=> sha1sum, sha256sum, md5sum 


● --prefix

=> 패키지가 설치 디렉터리를 지정 


● --enable-mods-shared=all는 

=> 관련 모듈을 전부 동적 모듈로 설치하도록 지정하는 것 


● CentOs6은 cmake를 설치해야한다.

=>yum cmake install


--initialize root 사용자의 임시 패스워드 부여 없이 초기화 설정을 진행하려면 --initialize-insecure로 실행


● /usr/local/mysql/bin/mysqld_safe --user=root & 

=> mysql 데몬 실행 

     오류가 발생시, myslq-lib 관련 패키지를 제거 여부 확인 

cd /usr/local/mysql/bin/mysqld 

mysqld --initialize --user=root 명령부터 다시 실행 


● --with-apxs2 

=> PHP가 아파치데몬에 DSO 모듈로 로링되돌곡 하기 위해서 관련 실행 MySQL이 설치되어 있는 디렉터리 가리킴.

 

● PHP가 인식할수 있도록 다음과 같이 설정 


http.conf mime_module 영역에 아래 2줄을 추가 


AddType application/x-httpd-php .php .htm .html .inc .php5 

AddType application/x-httpd-php-source .phps 


● /usr/local/apache/bin/apachectl restart 

=> 아파치 데몬 재시작 


● http.conf

=> 아파치 웹 서버의 기본적인 설정을 담당하는 파일로 항목을 살펴보면 다음과 같다.


● ServerRoot "usr/local/apache"

=> 웹 서버가 설치된 디렉터리를 나타낸다.


● Listen 80 

=> 아파치 웹 서버의 포트를 설정한다. 아파치 1.3버전의 Port 지시자를 대체한다.


user daemon 

group daemon 

=> 실행된 httpd 데몬의 사용자 및 그룹 권한을 나타낸다.


● ServerAdmin songsi@song.org 

=> 서버에 묹네가 발생했을 경우 보낼 관리자의 이메일 주소를 적는다.


● ServerName www.songsi.org:80

=> 서버의 도메인을 적는다. 


● DocumentRoot "/usr/local/apache/htdocs"

=> 웹 문서가 위치하는 디렉터리를 나타낸다. 



● httpd 

=> apache 웹 서버 관련 명령어 


옵션 

-t  환경설정 파일인 httpd.conf의 문법적 오류를 검사한다.

-f  새로 설정한 conf 파일이 있을 경우에 그 설정 파일로 아파치 데몬을 구동할 때 사용한다. 

-S 설정되어 있는 가상 호스트를 출력한다. 

-l   컴파일된 모듈에 대한 목록을 출력한다. 



● /usr/local/apache/bin/httpd & 

=> 웹 데몬 구동 


● /usr/local/apache/bin/httpd -t

=> Syntax OK 


● /usr/local/apache/bin/apachectl 

=>  apachectl 이라는 데몬 실행 제어 스크립트를 이용하여 실행 및 제어를 할 수 있다. 


주요 cmd 


help        간단한 도움말을 출력 

start        아파치 데몬을 시작한다.

stiop       아파치 데몬을 중지시킨다. 

restart      아파치 데몬을 재시작한다.

configtest  httpd.con 파일의 문법적 오류를 검사한다.

gracefu     웹 서버에 연결된 접속을 끊지 않고, httpd.conf의 설정만을 다시 읽어 들인다. 

status, flullstatus 웹 서버의 상태를 간단히 또는 전체적으로 출력한다. mod_status라는 모듈이 설치되어 

                        있어야 하고, http.conf의 <Location /server-status > 영역이 설정되어 있어야 한다. 


● /etc/rc.d/rc.local

=> 부팅 시 자동 실행괴기 설정하는 파일 

● httpd.conf 

/usr/local/apache/conf/httpd.conf 


● ServerName 

=> 서버의 도메인 이름을 적는 부분. 도메인 없으면 IP주소 적어되 된다. 


● DocumentRoot 

=> 웹 문서인 HTML 문서가 위치하는 경로를 나타낸다. 


● DirectoryIndex 

=> 여러 웹 문서 중에 처음으로 인식하는 인덱스 문서를 지정하는 부분 . 기본값은 index.html 

예) DirectoryIndex index.html index.htm index.php index.php5

<apache 사용자 인증 >

● htpasswd 

=> apache 사용자 인증 파일을 생성하고 관리해 주는 명령어이다. 


● htpasswd -c /etc/password songsi 

songsi라는 웹 사용자를 생성하고 계정 파일은 /etc/password로 생성한다.


-c 사용자계저 파일을 생성할 때 사용하는 옵션으로 계정 생성 시 반드시 한 번은 사용해야 한다. 


● php 파일 작성 시 <?php ~?> 형식으로 작업해야 하지만, 

   <?~?>으로 바꿀 수 있다. 


/usr/local/apache/conf/php.ini 

=> short_open_tag=ON으로 바꾸어 준다. 


아파치 웹 서버를 재시작한다. 

/usr/local/apache/bin/apachectl start 



<Direcetory />

Options FollowSymLinks 

AllowOveridde None 

Order deny,allow 

Deny from all

</Directory>


Options

=> CGI, SSI(Server Side Includes), 디렉터리의 심볼릭 링크 사용 여부 등을 

     설정


AllowOveridde

=> 사용자 인증에 관련된 요소로 웹 클라이언트가 특정 디렉터리에 접근할 때 

    해당 디렉터리에 있는 유저 인증 파일인 .htaccess 파일을 읽게 되는데  none

으로 설정시 이를 무시


Order

=> 해당 디렉터리에 접근하는 호스트 인증을 담당한다. 


Options 항목 

 

NONE                 어떤 옵션도 사용 할수 없음 모든 접근을 거부 

ALL                    MutltiView 옵션을 제외한 모든 옵션을 부여(기본값)

Includes 서버측의 추가적인 정보를 제공 SSI(Server Side Includes)

indexes URL이 지정된 디렉터리에 index.html과 같은 지정된 파일이 

                        없을 경우 해당 디렉터리의 파일 목록을 보여주는 옵션    

FollowSymLinks   디렉터리 내에서 심볼릭 링크의 사용을 허가 

ExecCGI            CGI 스크립트를 실행할 수 있도록 허가 

includesNOEXEC  ssl은 허용하지만 #exec 명령, CGI 스크립트 #include 불허 

MutltiView           ALL 옵션이 설정되었을 때만 지정된 목록의 multiviesw를 허용하는거 

                        유사한 파일 이름을 찾아주는 기능을 실행. 예를 들어 index라고만 입력하더라도 

index.*를 찾아서 보여줌 


AllowOveridde 항목



NONE          AllowOveridde 사용하지 않음 

ALL             http.conf 파일의 AccessFileName 지시자로 설정한 파일을 사용하고, 

                  관련 지시자를 사용할 수 있음 

AuthConfig    AccessFileName 지시자에 명시한 파일에 대해서 사용자 인증 지시자 사용을 허락 

                  

Fileinfo         AccessFileName 지시자로 설정한 파일에 대해서 문서 유형을 제어하는 지시자 사용을 허락 

indexes        AccessFileName 지시자로 설정한 파일에 대해서 디렉터리 indexing을 제어하는 지시자 사용을 허락.

Limit    AccessFileName 지시자로 설정한 파일에 대해서 호스트 접근을 제어하는 지시자 사용을 허락 

Options       AccessFileName 지시자로 명시한 파일에 대해서 Options 그리고 XBitHack등과 같은 지시자 사용을 허락 




Order 항목 

해당디렉터리에 대해 IP 주소 및 도메인에 대한 필터링 순서를 설정한다. 



'리눅스 마스터1급' 카테고리의 다른 글

yum, tar 명령어 옵션  (0) 2018.08.28
swqp,ps, find, quata  (0) 2018.08.27
samba, NIS  (0) 2018.08.25
리눅스 iptables,xinetd,  (0) 2018.08.24
리눅스 명령어(centOs)권한, 파일 시스템  (0) 2018.08.21
posted by 송시혁