front-server에서의 Nginx 역할


을 열어달라고 하는 역할임.

npm run build
npm next build(실제 원 구문)

npm run build가 되는 이유: package.json에서 npm run build가능하게금 했기 때문

😕빈 파일이 있으면 오류가 생길 수 있다.
😕잘못된 코드를 작성해도 오류가 생긴다.


성공하면 다음과 같은 화면이 뜬다.
build된 내용은 .next폴더에 있다.

위와 같이 .next폴더 안에 생긴다.
실행을 시키려면

npm run start
혹은
npx next start

를 터미널창에 입력한다.

기본 default port번호는 3000이다.

다음과 같이 "start":"next start -p 80"으로 바꿔주면 80번 포트로 접속이 된다.

c.f) $git rm -r --cached .명령어는 git의 캐시된 걸 지우는 명령어이다.

AWS -FRONT SERVER에 올리기

프론트 내용을 git 저장소에 올린 후 서버에서 git clone을 한다.
그 다음에
$ cd [원격저장소 이름]
을 입력한다.

이렇게 원격저장소 폴더까지 간다.

그 다음에 다음과 같은 명령어를 쳐준다.

 $npm i 
 $npm run build
 $npm run start

이건 NEXT를 빌드하고 실행시키는 과정이다.


저번에 만들었던 AWS 서버를 이용한다면 Nginx가 실행중이어서 80번 포트가 실행되기에 이러한 오류가 난다. 그래서 서버를 끄고 다시 실행하는 작업을 할 것이다.

$sudo systemctl status nginx

를 통해 잘 꺼졌는지 확인한다.

그 다음에
$sudo npm run start
해주면 잘 실행됨을 알 수 있다.

이미지가 잘 안나올 수 있다.
변환 문제임.
console.log 찍어보면 문제가 나옴.

HTTPS 적용하기

https는 보안이 http보다는 철저한 것으로 알려져 있다.
https가 적용된 사이트는 다음과 같이 자물쇠가 되어 있다.

http는 80 port를 사용하고, https는 443 port를 사용한다.

https는 인증서가 필요하다. 그래서 인증서를 발급받아야 https를 사용할 수 있다. 인증서는 유료지만, 3개월짜리 무료 버전이 있다. 3개월이 지난 후에도 사용할 수 있다.

Nginx에 설치할 것임.

리다이렉트


네이버도 이 과정을 거친다. naver.com 이라고 치면 80번 포트로 접속하는 건데, 주소창에는 자물쇠가 되어있다.

서버를 두개 돌릴거라서 next서버도 백그라운드에서 돌아가야 함.
--> pm2설치하기

$npm i pm2

-sudo npx pm2 start server.js
전에는 이렇게 했지만
이제는 npm run start를 실행시켜야 하기 때문에

$ npx pm2 start npm -- start

Nginx

cd /etc/nginx/sites-available
에서 ls치고 파일 중에서 myapp.conf파일 존재하는지 확인한다.

myapp.conf를 수정해야 함
sudo vi myapp.conf

지금까지 과정은 80번 포트로 왔을 때 포트가 3001번으로 변경되는 과정이다.


인증서 발급& Nginx 설정

certbot
인증서를 발급 받을 수 있는 툴 설치하고
우리가 사용하는 서버 프레임워크를 뭔지만 알려주면 알아서 세팅해준다.

1.certbot설치하기

$cd ~
$sudo snap install certbot --classic

위와 같이 홈 디렉토리에 가서 certbot을 설치해준다.

위와 같은 화면이 뜬다면 설치가 완료된 것이다.

$ sudo certbot --nginx


1

그러면 /etc/nginx/sites-available/myapp.conf내용이 수정이 되엇ㅇ르 것이다.

그러면 다음과 같이 될 것이다.

https 접속이 완료되었다.

인증서를 확인해보면 3개월로 되어 있다.
그러면 3개월마다 인증해야 하나? 아니다. 다음과 같은 명령어를 입력하면 자동적으로 연장이 된다.
$ sudo certbot renew --dry-run

다음과 같은 화면이 뜬다면 성공한 것이다.

cd /etc/cron.d 여기로 이동한다.
거기서 sudo vi certbot을 통해 파일을 만든다.
certbot에 다음과 같이 입력한다.

SHELL=/bin/sh
PATH=/user/local/sbin:/user/local/bin:/sbin:/bin:/



front-server에서 2개 서버가 돌아가는 그림

리눅스 ls -al으로 권한 알아보기


d:디렉토리 여부 (파일이면 -으로 나타남)
r:읽기권한
w:쓰기권한
x:실행권한

drwxrwxrwx1ubuntuubuntu4012날짜
디렉토리 여부유저그룹다른사람들속한 파일 갯수소유권그룹용량날짜

유저:리눅스 사용자
그룹:
한 컴퓨터에 여러명의 사람들이 사용할 수 있음.

다른 사람들 : 클라이언트
클라이언트에게는 r-x주는것이 일반적임.
읽기와 실행만 되게끔
만약 내가 1년차인데 DB서버에 가서

$sudo chmod 777 memo.md
이렇게 하면 -rwxrwxrwx로 권한이 바뀐다.
권한 바꾸는 건 최고관리자만 가능!

profile
코딩 재밌어요!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN