[CentOS] Nginx 설치 및 사용 방법

리눅스 환경에서 Nginx 설치 및 사용 방법에 대해 알아보겠습니다.

1. Nginx 저장소 추가

yum 저장소에는 nginx 라이브러리가 없기 때문에 저장소를 추가합니다.

1
[hgko@localhost ~]$ sudo vi /etc/yum.repos.d/nginx.repo

/etc/yum.repos.d 경로에 nginx.repo 파일을 추가하고 다음과 같이 작성합니다.

1
2
3
4
5
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

2. 설치

저장소를 추가하였다면 설치를 합니다.

1
[hgko@localhost ~]$ sudo yum install -y nginx

3. 방화벽 포트 개방

웹서버의 8080 포트를 사용할 계획이므로, 8080 포트를 개방합니다.

1
2
3
4
5
6
# 포트 개방
[hgko@localhost ~]$ sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
# 방화벽 재시작
[hgko@localhost ~]$ sudo firewall-cmd --reload
# 개방된 포트 목록 확인
[hgko@localhost ~]$ sudo firewall-cmd --list-ports

4. 서비스 시작

서비스를 등록하고 시작합니다.

1
2
[hgko@localhost ~]$ sudo systemctl enable nginx
[hgko@localhost ~]$ sudo systemctl start nginx

5. 웹 서버 배포

서비스가 시작되었으면 개발된 웹 서버 배포 작업을 진행합니다.

  • 빌드된 프로젝트를 /usr/share/nginx/ 경로로 이동시킵니다.
  • 기존의 설정파일인 default.conf 파일을 엽니다. 기존 설정파일을 지우고 새로 생성해도 됩니다.
  • 포트를 변경하고, 프로젝트 경로를 입력하고, 필요한 proxy 정보를 입력합니다.
  • proxy_pass에는 backend server url을 입력합니다.
1
2
[hgko@localhost ~]$ sudo su
[root@localhost ~]$ vi /etc/nginx/conf.d/default.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
server {
listen 8080;
listen [::]:8080;

server_name localhost; # 도메인 주소

root /usr/share/nginx/frontend; # 배포된 프로젝트 경로
index index.html index.htm;

client_max_body_size 100M;
location ^~ /api {
proxy_pass http://127.0.0.1:3100; # backend url
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}

location ^~ /stream {
proxy_pass http://127.0.0.1:3100; # backend url

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}

location / {
try_files $uri $uri/ /index.html;
}
}

6. 서비스 재시작

설정이 완료되면 서비스를 재시작합니다.

1
[hgko@localhost ~]$ sudo systemctl restart nginx

7. 확인

http://localhost:8080을 접속하여 웹 서버가 잘 실행되고 있는지 확인합니다.

Share