-
[리눅스-Ubuntu-APACHE2-REACTJS] 프론트 배포하기/고정IP설정IT/코딩히스토리_서버 2024. 1. 21. 20:56
[목적]
리액트JS로 만든 프론트소스를 리눅스 서버로 올려 배포를 하기
[선행 조건]
1.VMWARE에 우분투로 리눅스 서버를 생성
2.아파치를 리눅스 서버에 설치
3.PUTTY를 통해 리눅스 서버 접속 설정
[차례]
1. fe 디렉토리의 터미널에서 npm run build를 통해 build파일 생성
그러면 디렉토리에 build파일이 생성됨
2. 이제 PUTTY 로 접속해서 scp 명령어를 통해 리눅스로 해당 빌드파일을 전달하면 됨
그전에 리눅스 서버에 원격파일 전송 경로를 미리 생성해주는 것이 좋음(이따가 apache2 설정 파일에서 운영디렉토리 설정할 건데, build, remote, backup 이런 식으로 나눠서 배포할때만 해당 파일을 옮기는게 맞겠다는 판단이 들었음)
scp -r C:\[프로젝트경로]/build [리눅스접속계정]@[리눅스접속IP]:/[전송할 리눅스서버의 디렉토리]
만일 이렇게 했을시 퍼미션 에러가 난다면 폴더 권한 문제일 수 있음
그럴 땐
sudo chown [권한줄 계정] [해당디렉토리]/
이렇게 해당 디렉토리의 권한을 전송시 사용자하고 동일시 해줄 것
3. 이제 이동시킨 build 파일을 Apache 웹 서버의 DocumentRoot로 이동시키고 재시작 혹은 시작 하면 됨
[ DocumentRoot 설정 하는 법]
apache2 설정 파일은 두가지
- apache2.conf : centOS 라면 /etc/httpd/conf/httpd.conf, apache의 전역 설정, 기본 디렉토리 설정
- sites-available/ : 가상 호스트 설정 파일들이 보관 되는 디렉토리 / 운영 관련 설정
DocumentRoot은 sites-available/ 아래있는 설정 파일로 접근
/etc/apache2/sites-available$ vim 000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /디렉토리/build # 이부분에 운영시 사용할 build파일을 위치를 적으면 됨
</VirtualHost>저장하고 재시작
sudo systemctl restart apache2
주의할 점은 설정 파일 같은 경우 백업파일을 먼저 만들고 저장하는 게 좋음... 뭐가 또 문제가 날지도 모르니
* 저렇게 설정했는데도 외부에서 접근이 안된다? 그러면 해당 디렉토리에 대한 접근 권한이 없어서 그럼
이럴때 설정하는게 apache2.conf이다. 여기서 해당 디렉토리에 대한 권한을 설정한다.
나는 아래와 같이 설정했다. 자세한 설정 값은 따로 찾아 보는게 나을 것 같다.
<Directory /was/web/build/>
AllowOverride All
Require all granted
</Directory>하고 아파치 재시작
그러면 fe가 정상적으로 외부에서 접근이 될 것이다.
* 글을 작성하던 중 문제가 발생했었다.
바로 vmware에 설치한 우분투의 ip가 고정 ip가 아니여서
ip가 바뀌었다. 그래서 리눅스(우분투)에서 고정 ip설정을 먼저해줬다.
vim /etc/netplan/01-network-manager-all.yaml
[변경전]
network:
version: 2
renderer: NetworkManager[변경후]
network:
version: 2
ethernets:
ens33:
dhcp4: no
addresses:
- [고정ip]/24
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
routes:
- to: default
via: [고정ip 맨뒤제외].1이렇게 설정하고 적용
netplan apply
ifconfig 해서 바뀌었는지 확인
그러면 접속됨
[참고]https://it-svr.com/ubuntu-22-04-lts-static-ip/
Ubuntu 22.04 LTS IP설정 방법(고정 IP 설정)
안녕하세요. 달소입니다. 요번글은 Ubuntu 를 처음 접하시는 초심자를 위한! IP 변경 방법입니다. Ubuntu의 경우 minimal/server 버전으로 설치할시 CLI에서 최초에 IP설정도 가능하나 설치후에 변경하는
it-svr.com
*주의할 점 방화벽이 켜져있다면 해당 포트도 열어줘야함
그래야 putty 접근 or 웹서버 접근 가능 함
sudo ufw status
접근 하려는 포트가 있는지 확인 없다면 허용해줘야함
웹 서버의 기본 포트는 80이며, HTTPS를 사용한다면 443
#외부에서 서버 접속시
sudo ufw allow 22
# HTTP
sudo ufw allow 80
# HTTPS
sudo ufw allow 443
*번외 ifconfig할때 값들이 되게 많은데 아래 링크가 정리 잘되있다.
아래 링크 참고
https://change-words.tistory.com/entry/inet-netmask-broadcast
'IT > 코딩히스토리_서버' 카테고리의 다른 글
[SPRING BOOT/이클립스] jar 파일로 서버에 배포하기 (0) 2024.01.22