오늘 할일
젠킨스를 이용 docker 이미지를 자동적으로 만들고 docker hub에 push 파이프 라인으로 짜기 28 빌드만에 성공 했지만 npm i 하던 도중 인스턴스 폭파;....
인스턴스 메모리가 1기가 이므로 .. 젠킨스를 돌리면서 다른것 하는게 힘들..
nginx 알아보고 적용하기
1.우선 인스턴스에 우리 사이트 배포
2.nginx 적용 해서 배포
3.nginx https 적용
3.nginx 로드밸런싱 알아보기
3.nginx 도커로 컨테이너화 해서 배포
CURL 설치
$ sudo apt-get install -y curl
Apt 패키지 매니저 이용
$ sudo apt update
노드js 다운로드
$ sudo apt install nodejs
노드 패키지 매니저 npm 다운로드
$ sudo apt install npm
node.js 업데이트
$ sudo npm cache clean --force
$ sudo npm install -g n
$ sudo n stable
npm 업데이트
$ sudo npm install -g npm
restart하기
pm2 설치
$ sudo npm install pm2 -g
ngnix 설치
$ sudo apt-get update
$ sudo apt-get install nginx
$ vim /etc/nginx/nginx.conf
여기서 어디로 include 하는지 알아볼것
vim /etc/nginx/sites-enabled/default
upstream fungap_server {
server 3.36.99.37:3000;
}
server {
server_name stravinest.shop;
charset utf-8;
client_max_body_size 75M;
location / {
proxy_pass http://fungap_server/;
proxy_pass_header Set-Cookie;
proxy_cookie_path / "/; secure; SameSite=None";
proxy_set_header 'Access-Control-Allow-Origin' '*';
proxy_set_header 'Access-Control-Allow-Credentials' 'true';
proxy_set_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Origin,X-Auth-Token,Aut horization,Accept,Client-Security-Token';
proxy_set_header 'Access-Control-Allow-Methods' 'OPTIONS, GET, POST, PATCH, PUT, DELETE';
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;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/stravinest.shop/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/stravinest.shop/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = stravinest.shop/) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name stravinest.shop;
return 404; # managed by Certbot
}
$ sudo nginx -t
적용 끝
https://twpower.github.io/44-set-free-https-by-using-letsencrypt
포트 열어주기!
도메인 있어야 함
nginx 서비스 중지
systemctl stop nginx
systemctl start nginx
netstat -nltp
/etc/init.d/nginx restart 재시작
삭제가 안될시에
sudo lsof -i :5000 (포트번호)
sudo kill -9 20152 (pid 번호)
pm2 권한 에러
443 리다이렉트
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3000
sudo apt-get install letsencrypt