Nginx 웹 서버

김형선·2023년 9월 22일
0

Linux

목록 보기
16/16

웹 서비스

  • 브라우저를 사용하여 인터넷을 탐색하는 서비스

웹 서비스를 제공하기 위해서 가장 많이 사용하는 툴

  • Apache
  • Nginx(요즘 더 많이 씀)
  • 웹 서버를 리눅스에서 동작하도록 만들어진 프로그램

웹 서버

  • 정적인 컨텐츠를 제공하는 서버
  • 정적 컨텐츠는 html 문서, 이미지 등 즉시 응답 가능한 컨텐츠
  • apache, nginx가 웹 서버 역할함

동적 컨텐츠는 웹 어플리케이션 모듈로 전달하여 처리한다. 웹 어플리케이션 모듈은 웹 서버에서 전달된 페이지를 처리한다. 페이지에 내장된 코들르 실행하고, 실행한결과를 다시 정적 컨텐츠 형태인 HTML로 생성하여 웹 서버에 전달한다. 그리고 웹 서버는 전달받은 HTML 페이지를 클라이언트에게 전송한다.
웹 어플리케이션 모듈은 데이터베이스와 연결되어 필요한 데이터를 가져오거나 데이터베이스에 저장된 데이터를 업데이트한다. 예를 들어, 쇼핑몰 웹사이트에서 장바구니가 유저마다 다르다. 유저마다 다른 목록이 보여져야하고 이건 데이터베이스에 저장된 데이터를 통해 다르게 보여지는 것이다.

WAS(Web Application Server)

  • 동적인 컨텐츠를 제공하기 위해 만들어진 application server
  • HTTP 프로토콜을 기반으로 하는 미들웨어
  • Tomcat, JBoss <이런 툴들 필요함

참고링크

웹서비스 구조 크게 3가지로 나뉜다
1. 클라이언트 - 웹서버 - db
2. 클라이언트 - WAS - db
3. 클라이언트 - 웹서버 - WAS -db


☆실습

웹서버만 구축해볼것
nginx웹서버 구축할것
패키지부터 다운로드 받자

yum install -y nginx mod_ssl

참고

selinux 켜져있는지 확인(getenforce)하고 켜져있어서 끄자(일시적으로 끄는것임)

나중에 세 개의 가상호스트 구성하려고 우선 디렉토리 세 개 만들었다.

cd example.com
vi index.html하고

이제 설정파일 건드리겠다. /etc/nginx 들어가면 nginx.conf 파일 보인다
들어가서 vi example.com.conf한다

nginx -t하면 잘 됐나 확인 가능

systemctl reload nginx(restart는 하면 큰일난다)

/etc/hosts에 10.0.2.4 www.example.com example.com추가하자

local에서 firefox켜서 www.example.com 들어가면

이렇게 뜬다


이제 가상호스트 세 개 구성해보겠다.

cd /srv/dataops.com에서 vi index.html 생성하자

/srv/friday.com에도 똑같이 해주자

cd /etc/nginx/conf.d 들어가서 example.com.conf를 -p옵션 주고 cp하자. friday.com.conf랑 dataops.com.conf파일 알맞게 수정하겠다.

그 뒤에 nginx -t로 확인.

설정파일 수정했으니깐 systemctl reload nginx해준다

이제 /etc/hosts를 수정한다. friday.com이랑 dataops.com추가해준다.

가상호스트 사용 이유

  • 여러 사이트를 하나의 서버에서 호스팅하기 위해서 가상 호스트(Virtual Host)를 사용
  • IP 주소를 공유하면서 각 사이트를 식별하고 관리

https
웹 서버에서 클라이언트에게 콘텐츠를 제공하는 방식은 http방식과 https방식이 있다.


rpm -qa | grep mod_ssl

이걸로 mod_ssl패키지가 잘 깔려있나 확인하자
그리고 cd /etc/pki로 이동
이 경로에서 mkdir example.com을 하자.
example.com 디렉토리에 인증키를 담을 예정이다.

cd example.com으로 이동한 다음에 키를 생성하자

키 생성 명령어

openssl genrsa -out private.key 2048


2048은 키의 길이인데 디폴트값이 저거고 -out옵션은 내보내주는것

private.key 만들어졌고

openssl req -new -key private.key -out cert.csr


csr 만들어졌고

openssl x509 -req -signkey private.key -in cert.csr -out cert.crt


crt 만들어졌다

chmod 600 private.key

권한 바꿔주자. private.key는 나만 봐야해서

이렇게까지 하면 인증서 만들어진 것임
csr파일은 crt파일을 만들기 위해 사용한 것임.

cd /etc/nginx/conf.d에 들어가서 example.com.conf파일을 보자
example.com.conf파일 밑에다가 ssl관련 설정을 추가하자.

nginx -t

로 확인하고

systemctl reload nginx

리로드 해 주고

firefox에서 들어가면 된다
https로 들어가자
advanced 누르고 걍 들어가기 하면 됨(사설이라 뜨는거)


이제 나머지 devops.com이랑 friday.com도 해줘야 한다.
우선 /etc/pki에서 각각의 디렉토리를 만드는 것부터 시작.

만든 디렉토리 각각에 들어가서
openssl genrsa -out private.key 2048
치면 private.key는 만들어지고
그 뒤에 각각에 대해서
openssl req -new -key private.key -out cert.csr

openssl x509 -req -signkey private.key -in cert.csr -out cert.crt
를 해준다
그리고 private.key 만든 것들 각각 chmod 600 private.key 해주고

cd /etc/nginx/conf.d 들어가서
devops.com.conf랑 friday.com.conf 각각 수정해준다.
nginx -t
systemctl reload nginx하고 https로 들어가본다.

0개의 댓글

관련 채용 정보