m1ndy5's coding blog

ubuntu 18.04 기준 Linux, Nginx, MySQL, PHP (LEMP 스택) 구축하기 본문

settings

ubuntu 18.04 기준 Linux, Nginx, MySQL, PHP (LEMP 스택) 구축하기

정민됴 2023. 1. 29. 22:15

아래는 ubuntu 18.04 기준이다!

https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04

Nginx란?

  • 가벼운 웹 서버
  • 클라이언트의 요청에 맞는 정적 파일을 제공해주기도 하고 Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄여주기도 함

Reverse Proxy란?

  • 프록시 서버 : 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 프로그램
    클라이언트와 서버 사이에 중계기 -> 보안성, 성능, 안정성을 향상시킬 수 있음
  • 포워드 프록시 : 클라이언트 앞에서 받은 요청을 웹서버에게 전달, 받은 응답을 다시 클라이언트한테 전달
    정부, 학교, 기업 등과 같은 기관에 속한 사람들이 직접적으로 웹사이트에 방문하는 것을 방지 -> 특정 사이트 접속 막기 가능
    사용자의 정체를 가릴 수 있음 -> ip주소 역추적해도 프록시 서버만 보임
  • 리버스 프록시 : 서버 앞에서 받은 요청을 로드밸런싱(나누어 할당)을 해줌
    서버의 ip를 노출 시키지 x -> 해커들의 공격을 막는데 유용
    성능 향상을 위해 캐시 데이터 저장 가능
    SSL 암호화에 유용

Apache와 다른점은?

  • Apache는 요청 처리할 때마다 새로운 쓰레드 생성 -> 그만큼 CPU와 메모리 자원의 소모가 큼
  • Nginx는 한 개 혹은 고정된 프로세스만 사용하고 비동식 방식으로 요청 처리 -> 단일 서버에서도 동시에 많은 연결 처리 가능

MySQL이란?

  • 관계형 데이터베이스 관리 시스템(RDBMS)
  • 오픈 소스(무료), 다중 사용자와 다중 스레드 지원
  • 표준 SQL 형식 사용

PHP란?

  • C언어 기반 서버 사이드 스크립트 언어
  • 동적 웹 페이지를 쉽고 빠르게 만들 수 있게 도와줌
  • PHP로 작성된 코드를 HTML에 추가하면 PHP코드를 해석하여 동적 웹페이지 생성
  • 직관적 코드 작성 가능, 대부분 웹 서버에서 지원
  • 복잡한 사이트 만드는 건 무리, 보안에 안전하진 않음

동적 웹페이지란?

  • 서버가 사용자의 요청을 해석하고 데이터를 가공하여 생성하는 웹 페이지
  • 상황에 따라 달라짐

구축을 잘했다면 aws에서 배정받은 ip주소에 들어가면 nginx화면이 뜨게 될 것이다!

sudo vi /etc/nginx/sites-available/default 파일에 들어가 php부분을 주석 해제를 하고 (우분투 18.04기준 php-fpm 버전은 7.2)


sudo service nginx restart 해주면 ip주소/index.php를 접속했을 때

이런 화면이 뜨게 된다!

추가 공유

호옥시 맨 위에 보내준 블로그 따라하다가 nginx 설치하면서 ufw 건들이고 다시 disable 안해주신 분들 있을 거 같아서
https://gksdudrb922.tistory.com/202
미리 공유해드립니당! 글도 한번 읽어보시고 댓글도 한번 확인해보세요!