Nginx in EC2
Nginx
엔진엑스는 동시접속 처리에 특화된 웹서버 프로그램이다. 아파치와 양대산맥을 이루고 있지만 최근 급부상하고 있다. 그 이유는 훨씬 단순하며, 비동기로 동작해서 엄청난 효율을 보여주기 때문이다.
역할
HTTP 서버
html,css나 이미지 등 정적파일들을 앞단에서 전송하는 역할을 한다.
리버스 프록시 서버
프록시서버는 클라이언트의 요청을 받아서 서버에게 전달하는 전달자이다. 리버스 프록시서버를 두게 되면 보안적으로 우세하며, 요청을 배분하는 역할을 한다.
장점
Nginx는 event-driven구조의 비동기 방식으로 동작한다. 새로운 요청이 들어오면 아파치는 쓰레드를 새로 생성해서 처리를 하기 때문에 많은 요청이 들어오면 CPU와 메모리의 소모가 커진다. 반면, 엔진엑스는 프로세스는 고정되어 있고 쓰레드를 새로 생성하지 않기 때문에 적은자원으로 효율적인 운용이 가능해진다.
설치
sudo apt-get install nginx
usr/local/etc/nginx
로 이동하면 엔진엑스 파일들을 확인할 수 있다.
사용
nginx.conf
파일이 엔진엑스의 방식을 지정하는 파일이다.
sudo vi nginx.conf
파일을 열어보면 다음 구조를 볼 수 있다.
# worker 프로세스를 실행할 사용자 설정
user nginx;
# worker 프로세스 설정
worker_processes 1;
# 오류 로그 파일 경로
error_log /var/log/nginx/error.log warn;
# NGINX 마스터 프로세스 ID 를 저장할 파일 경로
pid /var/run/nginx.pid;
# 접속 처리에 관한 설정을 한다.
events {
# 워커 프로레스 한 개당 동시 접속 수 지정 (512 혹은 1024 를 기준으로 지정)
worker_connections 1024;
}
# 웹, 프록시 관련 서버 설정
http {
# mime.types 파일을 읽어들인다.
include /etc/nginx/mime.types;
# MIME 타입 설정
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 api 를 사용 여부
sendfile on;
#tcp_nopush on;
# 접속시 커넥션 유지 시간
keepalive_timeout 65;
#gzip on;
# /etc/nginx/conf.d 디렉토리 아래 있는 .conf 파일을 모두 읽어 들임
include /etc/nginx/conf.d/*.conf;
}
리버스 프록시 설정
리버스 프록시를 설정하려면 다음과 같은 구조로 작성한다.
http {
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
}
Author And Source
이 문제에 관하여(Nginx in EC2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@c-on/nginx-in-EC2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)