MERN AWS배포
1. 인스턴스 시작 .
2.
add 해서
위에서 Srouce 에 0.0.0.0/0선택
5000은 node
27017은 mongodb
키페어 생성한거는 바탕화면에 두고.
인스턴스 시작.
pem파일있는 경로까지 접속
이거 복사해
들어옴!
만약 이런 에러가 나면 chmod로 펨파일의 권한을 바꿔준다.
이제 시스템 업데이트해줌.
실행됨.
파일질라 접속
호스트 써넣음
연결 클릭
성공
client, server 디렉토리 추가했음.
이제 node다운받겠다.
다음으로 엔진엑스 다운받기. (웹서버를 위해)
다음으로 엔진엑스 가동하기
암것도 안변했는데 status쳐서 볼수있다함.
잘되고있구나..
Ctrl C로나옴.
엔진엑스 디렉토리로 이동해보겠다.
config파일 잘있음.
여기에 conf.d와 nginx.config에서 엔진엑스 설정을 모두 바꿀수 있다.
nginx.config을 먼저 변경해보겠다. 바꾸기위해 높은 권한이 필요하니 sudo로 함.
etc/nginx들어온 상태이다.
d를 눌러서 안에 내용 다 지워.
맨위에 상단바에서 붙여넣기 클릭.
아래 코드를 넣었다.
user ubuntu;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
client_body_buffer_size 100k;
client_header_buffer_size 1k;
client_max_body_size 100k;
large_client_header_buffers 2 1k;
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 5 5;
send_timeout 10;
server_tokens off;
#gzip on; on;
include /etc/nginx/conf.d/*.conf;
}
여기에서 빠져나오려면 :wq!를 치면 된다.
conf.d로 접속.
안에 디폴트 파일이 없으니 만들어주겠다.
default.conf파일을 만들어준다
이제 여길로 들어간다.
conf.d에는 이거 붙여준다.
server {
#listen 80;
listen 80 default_server;
listen [::]:80 default_server;
server_name yourdomain.com;
access_log /home/ubuntu/client/server_logs/host.access.log main;
location / {
root /home/ubuntu/client/deploy;
index index.html index.htm;
try_files $uri /index.html;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
}
location /api {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
server_tokens off;
location ~ /\.ht {
deny all;
}
}
아래 코드를 쳐준다.
암것도 안나옴.
엔진엑스 상태를 확인해보겠다.
초록색 = 정상
빨간색 = 비정상
이제 몽고디비를 시작하겠다.
아틀라스 서버를 이용하는 방식으로 짜겠다.
그냥 dev파일 추가하라고만 하심.. ㅠ
우리 서버에 소스파일을 추가해보자.
VS 코드에서 올릴 폴더에 들어간다. 나는 보일러 플레이트로 해보겠다.
클라이언트 폴더에 들어간다.
잘 모르겠지만??
npm i 한번 해주고
npm run build를 해준다.
build라는 폴더가 생겼다!
이 빌드파일을 클라이언트에 넣어줄 것이다.
빌드에 있는 모든 파일을 우분투 서버의 client -> deploy에 넣어준다.
이제 우리는 우리 사이트를 퍼블릭 아이피로 접근할수있다.
미쳣당!
이제 백앤드 코드도 넣어보자.
그러기 위해서는 몽고디비를 연결해주어야 한다.
몽고디비 이메일 까먹어서 새로 만들었다 그냥.
AWS클릭
이거를 이제 config폴더에 dev.js에 붙여넣어준다.
이제 서버 폴더에 있는 것을 FileZilla로 옮겨줄 것이다.
package.json, package-lock.json, server를 옮겨준다.
이제는 node를 다운받아보자.
cmd에서 server 디렉토리를 찾아간다.
이제 package.json의 디펜던씨를 모두 다운받아주겠다.
먼저, npm을 먼저 다운로드 한다. (node package manager)
y누르고..
이제 설치가 다 되면 npm install을 해준다.
이제 node서버를 시작해보자.
npm run start
와우 ..