코딩마을방범대
우분투에서 Nginx 구축 본문
1. Nginx 설치
apt 업데이트 후 Nginx 설치
Nginx 설치 시 자동으로 실행됨
$ sudo apt update
$ sudo apt-get install nginx
Nginx 실행
$ sudo service nginx start
# or
$ sudo systemctl start nginx
서버 시작 시 자동으로 Nginx 를 실행하고 싶은 경우
$ sudo systemctl enable nginx
서버 시작 시 Nginx가 자동으로 실행되지 않게 하고싶은 경우
$ sudo systemctl disable nginx
설치된 Nginx 버전 확인
$ sudo dpkg -l nginx
2. 방화벽 설정
방화벽 상태 체크
$ sudo ufw status
방화벽 활성화
$ sudo ufw enable
방화벽 설정 가능 리스트 출력
$ sudo ufw app list
Nginx HTTP: 포트 80번만 허용 (암호화되지 않은 웹 트래픽)
Nginx HTTPS: 포트 443번만 허용 (SSL/TLS 암호화용)
Nginx Full: 포트 80, 443번 허용
Nginx 방화벽 설정 적용
$ sudo ufw allow 'Nginx HTTP'
해당 방화벽을 연 IP 주소로 접속 시
짜잔
※ 포트 충돌 문제로 실행이 불가할 경우
아래 명령어를 통해 현재 포트를 통해 실행하고 있는 프로세스 확인 후 kill 실행
$ sudo ss -lptn 'sport = :80'
3. Nginx 설정
Nginx 관련한 로그 경로는 /var/log/nginx
access.log: 웹 서버에 대한 모든 요청을 기록
error.log: Nginx에서 발생한 모든 오류를 기록
Nginx 관련한 디렉토리 경로는 /etc/nginx
conf.d : sites-enabled와 같이 nginx에 반영되는 작업들이 있지만 비활성해야 하는 경우 삭제하거나 변경해야 함
sites-enabled : 설정 파일을 복사 또는 심볼릭 링크로 걸어줌(nginx에 반영)
sites-available : 설정을 저장하는 곳(nginx에 반영 X)
conf.d 디렉토리를 사용하지 않고 sites-enabled와 sites-available를 메인으로 사용 시
sites-*로 디렉토리 추상화를 통해 작업을 체계화하고 별도의 지원 스크립트로 관리 가능
sites-enabled 디렉토리를 Nginx 설정 파일 경로로 사용하기 위해 nginx.conf(Nginx의 기본 설정 파일)에 설정 필요
conf.d 디렉토리에 대해서는 비활성화를 위해 #을 붙여 주석 처리 해주거나 아예 해당 라인을 지워주기
$ sudo vi /etc/nginx/nginx.conf
http {
...
#gzip on;
#include /etc/nginx/conf.d/*.conf;
// ↓ 이부분 추가
include /etc/nginx/sites-enabled/*;
server_names_hash_bucket_size 64;
}
4-1. 정적 서버 연동
1. 연결할 html 폴더 생성
$ sudo mkdir -p /var/www/[도메인 이름]/html
2. 소유자 설정
$ sudo chown -R $USER:$USER /var/www/[도메인 이름]/html
3. 권한 설정
$ sudo chmod -R 755 /var/www/[도메인 이름]
4. index.html 생성
$ sudo vi /var/www/[도메인 이름]/html/index.html
예시 html
<html>
<head>
<title>Test Successful!</title>
</head>
<body>
<h1>You're amazing</h1>
</body>
</html>
5. 커스텀 설정 파일 생성
$ sudo vi /etc/nginx/sites-available/[도메인 이름]
내용
server {
listen 80;
listen [::]:80;
root /var/www/[도메인 이름]/html;
index index.html index.htm index.nginx-debian.html;
server_name [도메인 이름] www.[도메인 이름];
location / {
try_files $uri $uri/ =404;
}
}
location / {...}
/ 대신 /app 등 주소를 넣으면 됨
ex)
ip: 10.10.0.10
location /app {...}
10.10.0.10:80/app 을 호출하면 이동
생성한 conf 파일에 대한 심볼릭 링크 설정
$ sudo ln -s /etc/nginx/sites-available/[도메인 이름] /etc/nginx/sites-enabled/
4-2. 동적 서버 연동
$ sudo vi /etc/nginx/nginx.conf
내용
html{
...
server {
# 서버주소: web서버 [ ex) listen 10.10.0.10:80; ]
listen [서버주소]:80;
location / {
# 연결시킬 서버주소: was서버
proxy_pass [연결시킬 서버주소]:[포트번호]; [ ex) proxy_pass 10.10.0.20:8080; ]
}
}
설정 파일 문법 오류 체크
$ sudo nginx -t
Nginx 재실행
$ sudo service nginx restart
# or
$ sudo systemctl restart nginx
※ http://도메인 이름 으로 실행!
참고사이트
Ubuntu 20.04에서 Nginx 설치 및 설정하기
'💡 백엔드 > 우분투' 카테고리의 다른 글
우분투에서 Apache를 이용해 WAS 연동하기 (0) | 2023.06.13 |
---|---|
우분투 패키지 재설치 시 정상적으로 설치가 되지 않을 경우 (0) | 2023.06.12 |
우분투 Apache2 실행 오류 (0) | 2023.06.12 |
시스템 모니터링 명령어 모음 (0) | 2023.06.08 |
프로세스 실행 시간 확인 방법 ( time ) (0) | 2023.06.08 |