일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- java
- Nodejs
- it
- Node.js
- 노마드코더
- reduce
- elb
- JavaScript
- TypeScript
- Load Balancer
- 항해99
- MYSQL
- CORS
- npm
- nginx
- https
- 자바스크립트
- 생활코딩
- wil
- 메소드
- ubuntu
- nomadcoder
- 조건문
- JWT
- AWS
- 프로그래머스
- mongoose
- mongodb
- 타입스크립트
- Joi
- Today
- Total
목록개발 (77)
V-logue
서버를 이용하는데는 아무런 문제가 없었지만, console에 계속해서 504 error가 등장했기 때문에 이를 해결하기로 했다. nginx를 사용하다보면, 발생할 수 있는 에러인데 서버와 클라이언트 사이에 proxy 연결 시간이 default 값인 60초를 넘기기 때문에 이를 바꿔주면 된다. 우리 서버의 nginx.conf 파일 값에 연결 시간과 관련된 값을 추가하면 된다. proxy_connect_timeout 300s; proxy_read_timeout 600s; proxy_send_timeout 600s; send_timeout 600s; proxy_buffers 8 16k; server { listen 80; server_name example.com; # redirect https setting..
항해99의 프로젝트 마지막 주차를 앞두고, 이메일 인증기능을 만들게 됐다. 우리 런데브(renDev)는 유저의 이메일을 아이디로 사용하고 , 유저와 유저간 소통이 이메일을 통해도 이루어지기 때문에, 유저가 실제 자신이 사용하는 email을 회원가입시 인증을 진행하고 가입하는게 무척 건설적이라는 나의 의견으로 내가 밀어붙여 만들기로 했다. 전부터 생각 했던건데 이번 프로젝트를 진행하면서 꼭 필요한 기능이라고 생각했다. 실제 유저의 이메일을 기반으로 한다면 좀 더 확실한 서비스를 제공할 수 있다는 생각이 지배적이었기 때문에 반드시 반드시 필요했고, 유저 피드백때도 등장했던 내용이다. 일단 Node에서 메일을 보내기 위해서는 npm의 패키지인 nodemailer가 필요하다 npm install nodemail..
Nginx와 proxy에 대해서 좀 정리를 해보려고 한다. 일단 기본적으로 Proxy란 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다. 그러니까 Proxy = 대리 즉, 남을 대신하여 일을 처리하는 것을 의미한다. 일반적으로 Proxy라고 하면, 범용적인 의미로 사용될 확률이 높기 때문에 여기서 내가 말하고자 하는 Proxy는 Network Proxy이다. 결국 Proxy Server란 대신 일을 처리해주는 서버를 말한다. 일반적으로 Proxy Server는 캐시/보안/트래픽..
AWS EC2 프리 티어 에이 노드 앱을 배포하려고했을 때 이 문제가 발생했다. 이 문제는 현재 내 ubuntu 서버에 깔려있는 Node가 최신 버전이 아니기 때문인데, 해결책은 Node와 npm을 최신 버전으로 업그레이드 하면 된다. $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - Personal Package Archive, 개인 패키지 저장소인 ppa를 설치해준다. 참고로 , 다른버전을 설치하고 싶다면 setup_14.x부분을 다른 버전으로 바꿔주면 된다. sudo apt install nodejs 문제 해결
스트레스 테스트를 위해 서버를 새로 생성하고, 서버에 node와 npm을 깔고 package.json파일을 npm install로 읽어오려고 하니 다음과 같은 에러가 발생했다. npm missing required argument #1 npm 버전이 최신버전이 아니라서 생긴 버전 문제라는데, npm cache clean --force sudo npm install -g n sudo n stable 를 차례대로 입력하면 npm install할 수 있다.
모종의 사유로 EC2 로드밸런서에 등록된 대상그룹의 Target이 사라졌을 때 발생한다. 해결은 간단한데, 문제가 되는 로드밸런서 대상그룹에 타겟을 다시 지정해주면 된다. 타겟을 지정해주기 전에는 이렇게 화면이 나타나는데, EC2의 로드밸런싱 대상그룹에 들어가서 Register targets을 누르고 원하는 EC2 인스턴스를 클릭하고 밑에 Include as pending below를 누르고 난 뒤 우측 하단의 Register pending targets을 누르고 나면 끝이다. 타겟그룹을 지정해준 뒤, 시간이 지나면 503에러에서 502 Bad Gateway에러로 바뀌는데, 이는 서버를 실행하지 않아서 생긴에러고 서버를 실행시키고 나면 Get요청으로 잘 불러오는 모습을 볼 수 있다.
AWS ELB와 Nginx로 HTTPS 서버 구축하는 도중 서버를 테스트 하는 과정에서 문제가 발생했다. node app.js로 서버를 시작하고나서 별다른 동작이 없는데도 불구하고, 계속해서 GET / 404요청이 들어오는 것이다. 이 문제를 해결하기 위해서 server section의 server_name과, location section의 proxy_pass값에 문제가 있다고 인식하고 값을 수정하기로 했다. (참고로 http Ip 주소는 실제 ip 주소말고 임의의 ip 주소를 넣었다.) server { listen 80; server_name rendev.link; // 단순히 nginx가 어떻게 http요청을 처리하는 지 알려주는 section location / { proxy_pass http:/..
실전 프로젝트를 진행하면서, 로그인 기능을 구현하게 됐다. jwt를 통해 로그인을 구현하는 건 항해를 진행하던 중 늘 하던 일이라, 별로 어렵지 않았는데 refreshToken을 사용하자는 말이 나왔다. jwt는 기본적으로 Stateless한 방식이라서 토큰을 발급해주는 서버측에서는 토큰을 가지고 있는 유저가 과연 진짜 유저인지 확인할 수 없다는 에로사항이 발생한다. 요약 무상태(Stateless) - 클라이언트와 서버 관계에서 서버가 클라이언트의 상태를 보존하지 않음 을 의미한다. 장점 : 서버의 확장성이 높기 때문에 대량의 트래픽 발생 시에도 대처를 수월하게 할 수 있다. 이에 대한 보안적인 측면을 강화하기 위해서 등장한게 refresh token인데 이 refresh token이라는걸 사용함으로서,..