당신은 주제를 찾고 있습니까 “엔진 엑스 – [Nginx] (1/2) 도대체 뭐길래 카카오, 네이버에서 사용할까“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 우리밋_woorimIT 이(가) 작성한 기사에는 조회수 7,229회 및 좋아요 187개 개의 좋아요가 있습니다.
엔진 엑스 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 [Nginx] (1/2) 도대체 뭐길래 카카오, 네이버에서 사용할까 – 엔진 엑스 주제에 대한 세부정보를 참조하세요
#nginx #웹서버 #apache
가장 핫한 웹서버인 nginx에 대해서 가져왔습니다.
총 2편으로 구성되어있습니다.
도움이 되셨기를 😀
===================================
⭐ Kite는 더 빠르고 더 스마트하게 코드를 자동화 할 수 있도록 도와주는 무료 AI 기반 코딩 도우미입니다. Kite 플러그인은 모든 최상위 편집자 및 IDE와 통합되어 입력하는 동안 스마트한 자동화와 설명서를 제공합니다. 6개월 동안 Kite를 사용해 왔는데 정말 좋아여😊!
https://www.kite.com/get-kite/?utm_medium=referral\u0026utm_source=youtube\u0026utm_campaign=woorimit\u0026utm_content=description-only
엔진 엑스 주제에 대한 자세한 내용은 여기를 참조하세요.
NGINX – 나무위키
가벼우면서도 강력한 프로그램을 목표로 개발된 오픈 소스 웹 서버 프로그램이다. ‘엔진엑스’라고 읽는다. HTTP와 리버스 프록시, IMAP/POP3 등의 …
Source: namu.wiki
Date Published: 9/25/2022
View: 1926
Nginx 이해하기 및 기본 환경설정 세팅하기
엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache 보다 동작이 단순하고, 전달자 역할만 …
Source: whatisthenext.tistory.com
Date Published: 12/30/2022
View: 9899
엔진엑스 – 해시넷 위키
엔진엑스(Nginx)는 러시아의 이고르 시셰프(Игорь Сысоев, 영어: Igor Sysoev)가 개발한 무료 오픈소스 웹서버 소프트웨어이다.
Source: wiki.hash.kr
Date Published: 3/19/2022
View: 526
Nginx – 위키백과, 우리 모두의 백과사전
Nginx(엔진 x라 읽는다)는 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다.
Source: ko.wikipedia.org
Date Published: 11/5/2021
View: 1801
[nginx] 아파치와 엔진엑스를 비교해보자. (Apache vs Nginx)
[nginx] 아파치와 엔진엑스를 비교해보자. (Apache vs Nginx). 깡냉스 2020. 4. 10. 21:42. 320×100. 반응형. Apache는 모든 개발자들에게 친근할 거다.(Nginx에 비해)Source: cornswrold.tistory.com
Date Published: 10/13/2022
View: 1151
[Infra] 아파치(Apache), 톰캣(Tomcat), 엔진엑스(Nginx) 차이
엔진엑스는 아파치와 같은 웹서버입니다. 엔진엑스는 아파치의 단점을 보완하기 위해 만든 프로그램인데요. 아파치는 C10K Problem이라고 해서 하나의 웹 …
Source: losskatsu.github.io
Date Published: 11/10/2021
View: 7009
Nginx(엔진엑스)란? – 1편: 개념
HTTP 프로토콜을 이용하여 html 데이터를 클라이언트에게 제공해주는 서버이다. HTTP 프로토콜이란 OSI 7 계층인 application layer에 위치한 프로토콜 …
Source: woorld52.tistory.com
Date Published: 11/9/2022
View: 9452
(2) 엔진엑스 웹 서버 셋업하기 – 라즈베리 파이 문서(2021.7 이전)
엔진엑스 설치. 먼저 터미널에서 다음의 명령을 타이핑하여 nginx 패키지를 설치합니다. sudo apt-get install nginx.
Source: wikidocs.net
Date Published: 9/19/2021
View: 9097
주제와 관련된 이미지 엔진 엑스
주제와 관련된 더 많은 사진을 참조하십시오 [Nginx] (1/2) 도대체 뭐길래 카카오, 네이버에서 사용할까. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 엔진 엑스
- Author: 우리밋_woorimIT
- Views: 조회수 7,229회
- Likes: 좋아요 187개
- Date Published: 2021. 6. 6.
- Video Url link: https://www.youtube.com/watch?v=ZJpT-Wa-pZ8
Nginx 이해하기 및 기본 환경설정 세팅하기
Nginx의 개요
엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache 보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있다.
동시접속자(약 700명) 이상이라면 서버를 증설하거나 Nginx 환경을 권장한다고 한다. 지금은 아파치가 시장 점유율이 압도적(?)이지만, 아마존웹서비스(AWS) 상에서는 시장 점유율 44%에 달할정도로 가볍고, 성능이 좋은 엔진이라고 한다.
본 포스팅에서는 AWS 인스턴스 상에서 Nginx를 설치하고, 기본적인 설정파일들을 알아보는 시간을 가질 것이다. 이 글을 작성하는 목적은 전문적인 정보를 전달하는 것이 아니라, 개인적인 학습 내요을 포스팅한 것이므로 중대한 오류가 있을 수 있다.
1. Nginx(웹서버)의 역할
1-1. 정적 파일을 처리하는 HTTP 서버로서의 역할
웹서버의 역할은 HTML, CSS, Javascript, 이미지와 같은 정보를 웹 브라우저(Chrome, Iexplore, Opera, Firefox 등)에 전송하는 역할을 한다. (HTTP 프로토콜을 준수)
1-2. 응용프로그램 서버에 요청을 보내는 리버스 프록시로서의 역할
두번째 역할은 리버스 프록시(reverse proxy) 인데, 한마디로 말하면 클라이언트는 가짜 서버에 요청(request)하면, 프록시 서버가 배후 서버(reverse server)로부터 데이터를 가져오는 역할을 한다. 여기서 프록시 서버가 Nginx , 리버스 서버가 응용프로그램 서버 를 의미한다.
웹 응용프로그램 서버에 리버스 프록시(Nginx)를 두는 이유는 요청(request)에 대한 버퍼링이 있기 때문이다. 클라이언트가 직접 App 서버에 직접 요청하는 경우, 프로세스 1개가 응답 대기 상태가 되어야만 한다. 따라서 프록시 서버를 둠으로써 요청을 배분 하는 역할을 한다.
nginx.conf 파일에서 location 지시어를 사용하여 요청을 배분한다.
Nginx는 비동기 처리 방식(Event-Drive) 방식을 채택하고 있다.
동기(Synchronous) : A가 B에게 데이터를 요청했을 때, 이 요청에 따른 응답을 주어야만 A가 다시 작업 처리가 가능 (하나의 요청, 하나의 작업에 충실)
비동기(Asynchronous) : A의 요청을 B가 즉시 주지 않아도, A의 유휴시간으로 또 다른 작업 처리가 가능한 방식
2. AWS에 nginx 설치하기
OS : Ubuntu 16.04 LTS
본 포스팅은 AWS 인스턴스(Ubuntu 16.04 LTS)에서 설치를 진행합니다. 맥 사용자나 Window 환경에서 설치하시는 분들이라면 본 포스팅과 차이가 있을 수 있으니, 다른 포스팅을 보실 것을 권장합니다.
설치 및 제거
sudo apt-get install nginx # 설치 sudo apt-get remove nginx # 제거
nginx version: nginx/1.13.2
nginx -v 했을 때 2017.07.03 기준 위와 같은 메시지를 출력한다.
ngix 경로
apt-get 을 이용한 패키지 설치 방법을 이용하게 되면 기본적으로 /etc/nginx 폴더에 설치된다. 본 포스팅에서는 이 방식을 이용했다. 직접 compile한 경우에는 /usr/local/nginx/conf 또는 /usr/local/etc/nginx 에 설치된다.
sudo find / -name nginx.conf
위 명령어를 이용해 nginx 가 설치된 경로를 찾아보자.
3. Nginx 디렉토리 구조 살펴보기
sudo find / -name nginx.conf
명령어를 통해 nginx.conf가 위치한 경로로 이동한다.
파란색은 폴더 를 의미하며, 하얀색은 설정 파일(file) 을 의미한다.
├── conf.d # (디렉토리) nginx.conf에서 불러들일 수 있는 파일을 저장 ├── fastcgi.conf # (파일) FastCGI 환경설정 파일 ├── fastcgi_params ├── koi-utf ├── koi-win ├── mime.types ├── nginx.conf # 접속자 수, 동작 프로세스 수 등 퍼포먼스에 관한 설정들 ├── proxy_params ├── scgi_params ├── sites-available # 비활성화된 사이트들의 설정 파일들이 위치한다. │ └── default ├── sites-enabled # 활성화된 사이트들의 설정 파일들이 위치한다. 존재하지 않은 경우에는 디렉토리를 직접 만들 수도 있다. │ └── default -> /etc/nginx/sites-available/default ├── snippets │ ├── fastcgi-php.conf │ └── snakeoil.conf ├── uwsgi_params └── win-utf
트리명령을 사용하려면 sudo apt-get install tree를 실시한다. 설치가 완료되면 tree -d 또는 tree . 로 확인 가능하다.
4. nginx.conf 기본 환경설정 튜닝하기
가장 핵심이 되는 nginx.conf 파일을 먼저 살펴보자. nginx.conf 파일은 Nginx가 동작해야 할 방식을 설정 값을 통해 지정한다.
이 파일은 root 계정만 수정이 가능하기 때문에, 수정이 필요하다면 sudo vim nginx.conf 를 통해 파일을 열어야 한다. 명령어를 통해 nginx.conf 파일을 열어보면 아래와 같은 형식을 갖는다. 얼핏보면 json 같기도 하다.
4-1. 최상단 (Core 모듈)
user nginx ; worker_processes 1 ; error_log / var / log / nginx / error . log warn ; pid / var / run / nginx . pid ;
user : NGINX 프로세스가 실행되는 권한 nginx는 마스터(master)와 워커(worker) 프로세스로 나뉜다.
워커 프로세스가 실질적인 웹서버 역할을 수행한다.
user 지시어는 워커 프로세스의 권한을 지정한다.
워커 프로세스를 악의적 사용자가 제어하면 해당 머신을 최고 사용자의 권한으로 원격제어하는 것이기 때문에 위험하다.
본 포스팅에서는 nginx로 변경하였다. work_processes : NGINX 프로세스 실행 가능 수 위에서 언급한 워커 프로세스 이다. 실질적인 웹서버 역할을 한다.
auto도 무방하지만, 명시적으로 서버에 장착되어 있는 코어 수 만큼 할당하는 것이 보통이며, 더 높게도 설정 가능하다. pid : NGINX 마스터 프로세스 ID 정보가 저장된다.
4-2. events 블락
events { worker_connections 1024 ; }
NGINX의 특징인 비동기 이벤트 처리 방식에 대한 옵션을 설정한다.
worker_connections 는 하나의 프로세스가 처리할 수 있는 커넥션의 수를 의미한다.
최대 접속자수 = worker_processes X worket_connections가 된다.
4-3 http 블락
http { include / etc / nginx / mime . types ; default_type application / octet – stream ; log_format main ‘ $remote_addr – $remote_user [$time_local] “$request” ‘ ‘ $status $body_bytes_sent “$http_referer” ‘ ‘ “$http_user_agent” “$http_x_forwarded_for” ‘ ; access_log / var / log / nginx / access . log main ; sendfile on ; keepalive_timeout 65 ; include / etc / nginx / conf . d / * . c onf ; }
keepalive_timeout : 접속시 커넥션을 몇 초동안 유지할지에 대한 설정값. 이 값이 높으면 불필요한 커넥션(접속)을 유지하기 때문에 낮은값 또는 0을 권장한다. (default=10)
servers token : NGINX의 버전을 숨길것인가에 대한 옵션이다. 보안상 주석을 제거하여 설정하는 것이 좋다.
types_hash_max_size , server_names_hash_bucket_size 호스트의 도메인 이름에 대한 공간을 설정하는 것으로 이 값이 낮을 경우 많은 가상 호스트 도메인을 등록한다거나, 도메인 이름이 길 경우 bucket 공간이 모자라 에러가 생길 수 있으므로 넉넉하게 설정한다.
4-4 기타
include 옵션 : 가상 호스트 설정이나 반복되는 옵션 항목을 inlcude 를 통해 불러올 수 있다. EX) 리버스 프록시를 각 도메인에 설정한다고 했을 떄 헤더 처리 옵션등을 conf.d 디렉토리에 넣어두고 incldue 명령을 통해 불러올 수 있다.
4-5 설정 파일의 반영
설정 파일의 내용을 변경한 후에는 NGINX에 반영해야 하는데, reload 명령을 이용한다.
sudo service nginx reload;
참고한 사이트
위키백과, 우리 모두의 백과사전
Nginx(엔진 x라 읽는다)는 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다.
2017년 10월 기준으로 실질적으로 작동하는 웹 사이트(active site)들에서 쓰이는 웹 서버 소프트웨어 순위는 아파치(44.89%), 엔진엑스(20.65%), 구글 웹 서버(7.86%), 마이크로소프트 IIS(7.32%)순이다.[4] 이 조사에서 생성은 되어있으나 정상적으로 작동하지 않는 웹 사이트들은 배제되었으며[5] 특히 MS의 인터넷 정보 서비스(IIS)를 설치한 웹 사이트들의 상당수가 비활성 사이트였다. 그런 사이트들도 포함하면 MS IIS가 1위이다. 2017년 6월 현재 Nginx는 한국 전체 등록 도메인 중 24.73%가 사용하고 있다.[6]
Nginx는 요청에 응답하기 위해 비동기 이벤트 기반 구조를 가진다. 이것은 아파치 HTTP 서버의 스레드/프로세스 기반 구조를 가지는 것과는 대조적이다. 이러한 구조는 서버에 많은 부하가 생길 경우의 성능을 예측하기 쉽게 해준다.
설명 [ 편집 ]
위키백과에서는 nginx를 SSL 터미네이션 프록시로 사용한다.[7]
HTTP 프록시와 웹 서버 기능 [ 편집 ]
정적 파일과 인덱스 파일 표현, 자동 인덱싱 기능.
캐싱을 통한 리버스 프록시
로드 밸런싱
고장 진단
SSL 지원
캐싱을 통한 FastCGI 지원
Name-, IP-기반 가상서버
FLV 스트리밍
MP4 스트리밍 모듈을 이용한 MP4 스트리밍
웹페이지 접근 인증
gzip 압축
10000개의 동시 접속을 처리할 수 있는 능력
URL 다시쓰기 (URL rewriting)
맞춤 로깅
서버 사이드 기능 포함
WebDAV
메일 프록시 기능 [ 편집 ]
SMTP, POP3, IMAP 프록시
STARTTLS 지원
SSL 지원
각주 [ 편집 ]
외부 링크 [ 편집 ]
[nginx] 아파치와 엔진엑스를 비교해보자. (Apache vs Nginx)
728×90
반응형
Apache는 모든 개발자들에게 친근할 거다.(Nginx에 비해)
Nginx가 왜 요즘 뜨고있는 HTTP서버인지, 자료를 조금 조사해보았다. (왜냐면 이제 Nginx 사용해볼거거든..)
Apache
Apache는 Client 요청을 받으면 MPM(Multi Processing Module : 다중처리모듈)이라는 방식으로 요청을 처리하며 대표적으로 Prefork와 Work방식이 있다. Apache 2.4에 Event 방식이 나왔지만, Worker방식과 비슷한것으로 알고있다. 아닌가?
일단 스레드/프로세스 기반구조에 대해 알아보자.
스레드/프로세스 기반 구조
스레드/프로세스 기반 구조
ServerSocket으로 request A가 들어오면 Thread를 할당해 준다. Thread는 그 socket을 가지고 read, write 작업(I/O) 등을 수행한다. 이 와중에 ServerSocket으로 request B가 들어오면, context switching이 일어난다. 새로 들어온 request에 Thread를 배분하고, 또 이 socket을 가지고 read, write 작업을 수행한다. 그러면서 A의 작업을 하기 위해 중간에 다시 context switching 하고, 그러다 다시 B 작업하려고 context switching을 하며 I/O 작업을 모두 처리
Prefork MPM
prefork
실행중인 프로세스를 복제하여 처리하는 방식이다.
각 프로세스는 한번에 한 연결만 처리하고, 요청량이 많아질수록 프로세스를 복제하여 동작한다.
프로세스를 복제하는 방식이기 때문에 메모리가 왕창 소비된다.
connection 수 = 프로세스 수 라고 보면 된다.
Worker MPM
worker
Prefork 방식은 한개의 프로세스가 한개의 스레드로 처리되지만, Worker방식은 한개의 프로세스가 여러 쓰레드를 사용하여 요청을 처리한다.
쓰레드를 사용하기 때문에 Prefork 방식보다 메모리 소모가 적고, 통신량이 많을 때 유리하다.
문제점..?
Apache는 접속마다 Process 또는 Thread를 생성하는 구조이다.
동시 접속 요청이 10,000개라면 그 만큼 Process or Thread 생성비용이 들 것이고 대용량 요청을 처리할 수 있는 웹서버로서의 한계를 드러내게 된다. ㅜ_ㅜ
Nginx
Nginx 는 Event-Driven 방식으로 동작한다.
한 개 또는 고정된 프로세스만 생성 하고, 그 프로세스 내부에서 비동기 방식으로 효율적으로 작업을 처리한다. 따라서 동시 접속 요청이 많아도 Process 또는 Thread 생성 비용이 존재하지 않는다.
더 자세히 알아보자면, Event-Driven 방식은 작업을 하다 I/O, socket read/write 등 CPU가 관여하지 않는 작업이 시작되면 기다리지 않고 바로 다른 작업을 수행한다. 그러다 진행중인 I/O 등의 작업들이 끝나면 이벤트가 발생하여 그 다음 작업을 처리하게 된다.
Event-Driven 방식
event-driven
Reactor는 event가 들어오면 알맞는 handler로 dispatch를 해준다. Handler는 이 dispatch된 event를 받아서 처리하는 역할을 수행
Event-Driven 방식은 Reactor pattern을 사용한다고 한다.(처음들었음)
Reactor pattern이란 이벤트 처리(event handling)디자인 패턴으로, 하나의 Reactor가 계속 이벤트를 찾고 이벤트가 발생(trigger)하면 해당 이벤트 처리기(event handler)에게 이를 알린다.
즉,
Reactor : Reacator는 별도의 스레드에서 실행되며 발생한 I/O 이벤트는 dispatching되어 해당 이벤트 처리기로 보내 처리한다.
Handlers : Reactor로부터 I/O 이벤트를 받아 실제 작업을 수행한다.
reactor pattern에 대해선 아래 블로그에 무척 잘 설명되어 있다.
https://jongmin92.github.io/2019/03/05/Java/java-reactor-pattern/
참고
https://medium.com/sjk5766/넌-뭐니-nginx-9a8cae25e964
https://sarc.io/index.php/nginx/64-nginx-event-driven
728×90
반응형
[Infra] 아파치(Apache), 톰캣(Tomcat), 엔진엑스(Nginx) 차이
웹서버 아파치(Apache), 톰캣(Tomcat), 엔진엑스(Nginx) 차이
참고링크
웹 서버(web server)란?
흔히 우리가 웹서버라고 하면 다음 두가지 중하나를 의미합니다.
먼저 소프트웨어 측면으로 보았을 때는 웹서버란 웹 브라우저와 같은 클라이언트로 부터 HTTP 요청을 받고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램을 의미합니다.
한편, 하드웨어 측면으로 보았을 때는 웹서버란 위 기능을 수행하는 물리 컴퓨터를 의미합니다.
아파치(Apache)
아파치는 여러가지 프로젝트를 통해 오픈소스를 만들어내는 소프트웨어 단체 이름입니다. 따라서 아파치 서버란 이 단체에서 만든 http웹서버를 의미하는데요. 즉 아파치 서버는 http요청을 처리할 수 있습니다. 클라이언트가 GET, POST, DELETE 같은 메소드를 요청하면 그에 대한 결과값을 돌려줍니다.
톰캣(Tomcat)
톰캣은 WAS(Web Application Server)입니다. 얼핏생각하면 아파치 서버와 같다고 생각할 수도 있지만, 둘은 목적이 서로 다른데요. 아파치 웹 서버는 정적인 데이터를 처리하는 서버이고, WAS는 동적 데이터를 처리하는 서버입니다. 즉, WAS는 DB와 연결되어 데이터를 주고 받는 것입니다.. 웹사이트 주소를 보다보면 html이 아닌 http://~/asdf.jsp 라는 주소를 볼 때가 있는데 웹 애플리케이션 서버는 이 JSP(Java Server Page)를 처리하는 프로그램입니다. 즉 Java로 만들어진 프로그램을 웹서버에서 돌려서 결과값을 클라이언트로 돌려줍니다.
클라이언트 – 웹서버 – WAS – DB
따라서 아파치와 톰캣은 목적이 다르기 때문에 둘을 연동하면 더욱 효과적입니다.
엔진엑스(Nginx)
엔진엑스는 아파치와 같은 웹서버입니다. 엔진엑스는 아파치의 단점을 보완하기 위해 만든 프로그램인데요. 아파치는 C10K Problem이라고 해서 하나의 웹서버에 10,000개의 클라이언트 접속을 커버할 수 있는 문제를 해결하기 위해 가벼움과 높은 성능을 추구하며 만들어졌습니다. 아파치와의 차이점은 아파치는 쓰레드/프로세스 기반 구조이며, 각 요청당 쓰레드 하나가 처리합니다. 한명의 클라이언트 당 하나의 쓰레드가 할당 되므로 사용자가 많아지면 시스템 자원 낭비가 심해진다는 단점이 있습니다. 반면 엔진엑스는 비동기 기반 구조라 더 적은 리소스를 사용해서 요청을 처리할 수 있습니다.
Nginx(엔진엑스)란?
Nginx 를 알기 전에 웹서버란?
HTTP 프로토콜을 이용하여 html 데이터를 클라이언트에게 제공해주는 서버이다. HTTP 프로토콜이란 OSI 7 계층인 application layer에 위치한 프로토콜로서 브라우저(클라이언트)와 서버 사이에 정보를 주고 받기 위한 프로토콜로 사용된다. 즉, 웹(사이트)를 이용한다면, 사이트로 들어갈 때, 어떤 방식을 사용해서, 서버는 어떻게 응답할 것인지를 정해놓은 약속이다.
웹서버로는 Nginx 와 Apache 등이 있다.
Nginx란?
nginx는 웹 서버중에 하나로 Apache와는 다른 방식의 웹서버이다. Apache와 비교되는 특징이자 장점으로는 다음과 같다.
Event Driven 방식으로 동작(요청이 들어오면 어떤 동작을 해야하는지만 알려주고 다른 요청을 처리하는 방식(비동기 방식))
아파치의 C10K problem(한 웹서버에 10,000개의 클라이언트의 접속을 동시에 다룰 수 있는 기술적인 문제)를 해결
즉, 다수의 연결을 효과적으로 처리 가능하다
또한 event-driven 방식이라 가볍기도 하다
Nginx 를 활용하여 LEMP 스택을 구현해보자!
준비물
Linux debian:buster
Nginx
php7.3
mysql(mariadb)
(추가) wordpress & 웹 페이지
비동기 방식에서 node.js를 떠올리는 사람이 있다면
node.js 창시자 라이언 달은 nginx를 프록시 서버로 앞단에 놓고 node.js를 뒤쪽에 놓는게 버퍼오버플로우 취약점에 의한 공격을 어느정도 방지한다고 하였다. 여기서 버퍼 오버플로우란 데이터가 저장되는 메모리 공간을 벗어나는 경우 오버플로우가 되고 이 때 사용되지 않아야 할 영역에 데이터가 덮어씌워져 주소, 값을 바꾸는 공격이다.
(2) 엔진엑스 웹 서버 셋업하기
엔진엑스는 유명한 경량 웹 서버 애플리케이션으로 라즈베리 파이에 설치하여 웹 페이지를 제공할 수 있습니다.
아파치와 같이, 엔진엑스는 HTML 파일을 HTTP를 통해 제공하며, 추가적인 모듈을 통해 PHP와 같은 스크립트 언어로 작성한 동적 웹 페이지들을 제공할 수 있습니다.
엔진엑스 설치
먼저 터미널에서 다음의 명령을 타이핑하여 nginx 패키지를 설치합니다.
sudo apt-get install nginx
그 다음에 서버를 시작합니다.
sudo /etc/init.d/nginx start
웹 서버 테스트
디폴트로서, 엔진엑스는 테스트 HTML 파일을 웹 폴더에 갖고 있습니다. 이 기본 웹 페이지는 파이에서 http://localhost/ , 또는 네트워크의 다른 컴퓨터에서 http://192.168.1.10 (파이의 IP 주소)를 브라우즈할 때에 제공됩니다. 파이의 IP 주소를 찾기 위해서는 명령행에서 hostname -I 를 입력합니다(또는 IP 주소 찾는 방법을 읽어보세요).
파이 또는 네트워크의 다른 컴퓨터에서 기본 웹 페이지를 브라우즈하면 다음을 볼 수 있습니다.
기본 웹 페이지 변경하기
라즈비안에서 엔진엑스의 기본 웹 페이지는 /var/www/html 에 있습니다. 이 폴더로 이동하여 index.nginx-debian.html을 편집하거나 원하는 다른 것으로 바꾸세요. /etc/nginx/sites-available 의 ‘root’로 시작하는 행에서 디폴트 페이지 위치를 정할 수 있습니다.
한 걸음 더 – PHP 설치하기
sudo apt-get install php-fpm
엔진엑스에서 PHP 활성화하기
cd /etc/nginx sudo nano sites-enabled/default
다음의 행을 찾습니다.
index index.html index.htm;
대략 25행 부근에 있습니다(nano에서 현재 행 번호를 보려면 CTRL + C 를 누릅니다).
다음과 같이, index 뒤에 index.php 를 추가합니다.
index index.php index.html index.htm;
다음의 내용을 가진 섹션을 찾을 때까지 아래로 스크롤합니다.
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # # location ~ \.php$ {
다음의 행들에서 # 문자를 지웁니다.
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; }
그러면 다음과 같이 보일 것입니다.
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; }
설정 파일을 재적재합니다.
sudo /etc/init.d/nginx reload
PHP 테스트하기
이름을 index.nginx-debian.html 에서 index.php 로 바꿉니다.
cd /var/www/html/ sudo mv index.nginx-debian.html index.php
텍스트 편집기에서 index.php 를 엽니다.
sudo nano index.php
현재의 콘텐츠를 대체할 약간의 동적 PHP 구문을 추가합니다.
저장하고 브라우저를 새로고침합니다. PHP 버전과 로고, 현재의 설정 등을 보여주는 페이지가 나타날 것입니다.
키워드에 대한 정보 엔진 엑스
다음은 Bing에서 엔진 엑스 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 [Nginx] (1/2) 도대체 뭐길래 카카오, 네이버에서 사용할까
- nginx
- 개발자
- Nginx
- NGINX
- 개발
- 코딩
- 웹서버
- was
- WAS
- 와스
- ws
- webserver
- server
- 서버
YouTube에서 엔진 엑스 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 [Nginx] (1/2) 도대체 뭐길래 카카오, 네이버에서 사용할까 | 엔진 엑스, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.