웹 서버를 선택할 때 가장 많이 비교되는 두 가지, Nginx와 Apache. 각자의 강점과 차이점을 이해하면 프로젝트에 맞는 최적의 선택이 가능해요. 오늘은 이 둘의 비교, 설치 방법, 작동 원리까지 함께 알아보겠습니다.
운영체제는 리눅스환경이라고 생각하세요
아마 데비안리눅스나 UBUNTU 환경이겠죠
🔍 1. Nginx vs Apache: 핵심 비교
| 출시년도 | 1995년 | 2004년 |
| 구조 | 프로세스 기반 (Process-based) | 이벤트 기반 (Event-driven) |
| 성능 | 적은 동시접속 처리에 유리 | 높은 동시접속 처리에 탁월 |
| 설정파일 | .htaccess 지원 | 중앙 설정만 지원 (nginx.conf) |
| 리버스 프록시 | 상대적으로 덜 발달 | 매우 강력 |
| 동적 컨텐츠 | 자체 처리(PHP 모듈) | 외부 앱(FastCGI 등)과 연동 |
| 윈도우 지원 | 상대적으로 안정적 | 리눅스 환경에서 더 안정적 |
⚙️ 2. 설치 방법
✅ Ubuntu에서 Apache 설치
sudo apt install apache2
서비스 시작/중지/확인:
브라우저에서 http://localhost 확인해보세요. "It works!" 메시지가 보이면 성공입니다.
✅ Ubuntu에서 Nginx 설치
서비스 시작/중지/확인:
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl status nginx
브라우저에서 http://localhost에 접속하면 Nginx 환영 페이지가 보입니다.
✍️ 마무리
- Nginx는 빠르고 가볍고, 리버스 프록시로도 아주 좋아요.
- Apache는 설정이 유연하고 PHP와 친화적이에요.
👉 최신 트렌드는 Nginx로 정적 콘텐츠/프록시 처리하고, Apache는 백엔드 처리에 사용하거나, 둘을 혼합 구성하는 것도 많습니다.
🌐 Nginx vs Apache: 기본 웹 루트 경로 비교
| 기본 문서 경로 | /var/www/html | /var/www/html |
| 기본 설정 파일 | /etc/nginx/sites-available/default | /etc/apache2/sites-available/000-default.conf |
| 메인 설정 파일 | /etc/nginx/nginx.conf | /etc/apache2/apache2.conf |
| 서비스 재시작 | sudo systemctl restart nginx | sudo systemctl restart apache2 |
🔍 즉, 두 서버 모두 기본으로는 /var/www/html/index.html 파일을 보여줍니다.
이 파일을 수정하면, 브라우저에서 서버 IP로 접속했을 때 나오는 화면이 바뀝니다!
🛠 디렉토리 구조 & 설정 변경 요약
✅ 1. 웹 루트 디렉토리 변경하고 싶다면?
📌 Nginx:
예: /home/ubuntu/my-site/public 등으로 변경 가능
📌 Apache:
nano 에디터에서
이 경로를 변경하면 기본 루트 경로가 바뀝니다.
✅ 2. 디렉토리 권한 설정
혹은
sudo chmod -R 777 /경로/디렉토리명
-R : Recursive (재귀적 → 디렉토리 내부 전체 적용) 대문자로 써야한대요
777 : 소유자, 그룹, 기타 사용자 모두에게 읽기(r), 쓰기(w), 실행(x) 권한 부여
웹 루트 디렉토리를 본인 계정이 수정 가능하도록 변경
💡 안전한 권한 설정 예시
- 웹 디렉토리:→ **웹서버 전용 사용자(www-data)**에게 소유권을 주고, 다른 사용자들은 실행/읽기만 가능하게
-
sudo chown -R www-data:www-data /var/www/html
- 혹은
-
sudo chmod -R 755 /var/www/html
- → **웹서버 전용 사용자(www-data)**에게 소유권을 주고, 다른 사용자들은 실행/읽기만 가능하게
✅ 3. 설정 적용 (재시작)
✅ 4. 방화벽 열기 (필요 시)
'서버 셋팅' 카테고리의 다른 글
| 네트워크 기본 개념 과 SSH 활용 방법 (0) | 2025.04.25 |
|---|---|
| Docker란 무엇인가요? (1) | 2025.04.23 |
| git commit 했는데 편집기가 열렸을 때 어떻하지? (0) | 2025.04.20 |
| Git Pull 안 될 때 강제로 해결하는 방법 (0) | 2025.04.20 |
| GITHUB 이해하기 (0) | 2025.04.20 |