728x90

 

개요

항상 프론트와 백엔드가 하나의 프로젝트에서 관리하는 방식으로 사용했다. 하지만 성능이나 확장성에서 MSA(Micro Achitecture)가 중시되면서 프론트와 백엔드를 분리하여 관리하는 추세이다. 백엔드는 jar파일로 실행하였지만 프론트는 찾아보니 dist파일을 NginX에서 실행할 수 있다는 것을 알게 되어 방법을 공유한다.

 

서버 환경

OS: CentOS Linux 7
NginX: 1.25.2

 

설치 환경설정

NginX를 설치하기 전 설정파일을 생성해야 한다.

1
]# vim /etc/yum.repos.d/nginx.repo
cs
 
1
2
3
4
5
6
7
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
cs

 

설정한 버전 선택

레포지토리 설정할 때 [nginx] → 하나만 설정하였기 때문에 생략해도 무방하다.

1
]# yum-config-manager --enable nginx
cs

 

 

설치하기

1
]# yum -y install nginx
cs

 

 

dist 파일 실행 환경설정

1
]# vim /etc/nginx/conf.d/default.conf
cs
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
server {
    listen       8080;
    server_name  frontend_dev;
 
    access_log /home/frontend/logs/access.log main;
    error_log /home/frontend/logs/error.log warn;
 
    root   /home/frontend/dist;
    index  index.html;
 
    location / {
        try_files $uri $uri/ /index.html;
    }
 
    error_page  404              /404.html;
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /home/frontend/dist;
    }
 
    location ~ /\.ht {
        deny  all;
    }
}
 
cs

line 2, 'listen        8080;' : 실행할 포트 설정

line 5,6, 'access_log와 error_log' 변경할 로그 파일 위치 설정

line 8, 'root    /home/frontend/dist;' : 자신의 프로젝트를 빌드해서 생성한 dist파일의 위치로 설정

line 9, 'index    index.html' : 처음 실행할 파일

line 11, 13 : 되도록 똑같이 작성. 다르게 할 시 SPA 새로고침 404에러 이슈 발생할 수 있음

line 15, 20 : 에러 페이지 설정

line 22, 24 : htaccess 파일 접근 금지 설정

실행하기

1
]# systemctl start nginx
cs

행하면 403 Forbidden open() "/home/frontend/error.log/" is forbidden (13: Permission denied)가 발생할 수 있다. 이 경우에는 아래 명령어로 권한을 허용해주면 해결된다.

1
]# semanage permissive -a httpd_t
cs

 

728x90
TOP