실전프로젝트 3주차 목요일 (nginx)

전은규·2021년 11월 11일
0
post-custom-banner

오늘 할일
젠킨스를 이용 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 적용

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

profile
성장하는개발자
post-custom-banner

0개의 댓글