전체 글93 [nginx] sites-available에 만든 파일 sites-enabled에 include시키기 ubuntu@:~/ cd /etc/nginx /etc/nginx의 경로에서 nginx에 대한 기본적인 설정을 진행할 수 있다. 그 중 프록시 관련 설정을 할 때 /etc/nginx/sites-enabled 라는 폴더에서 직접적으로 설정이 가능하고 유저는 저 폴더에 있는 설정파일을 직접적으로 수정하지 않고 /etc/nginx/sites-available 의 폴더에서 여러 설정파일들을 생성한 뒤 그 파일들 중 원하는 설정을 선택적으로 sites-enabled폴더에 동기화해서 적용하는 symlink 기능을 이용한다. 다음은 sites-available에 만든 설정파일을 sites-enabled에 symlink 시킬 수 있는 명령어이다. 먼저 sites-available에 'proxy-setting1'이라는 설.. 2020. 3. 26. [nginx] nginx에 프록시, 로드밸런싱 설정하기 1. 프록시 설정 한 웹 서버 안에는 여러 서버가 있을 수 있다. 그 각각의 서버들도 자기의 서버가 있고 웹서버 안에 있는 이상 메인도메인(퍼블릭 ip) 안에서 프라이빗 ip를 가지고 있는 것이다. 프록시 설정을 하면 퍼블릭 ip를 거친 요청만이 프라이빗 ip로의 요청 마무리를 통해 요청을 통한 원하는 응답을 가질 수 있다. 클라이언트가 서버의 자원을 자기 맘대로 쥐락펴락 못하려면 웹서버의 퍼블릭 ip, 웹 서버 안에서의 프라이빗 ip 를 모두알면 안된다. 클라이언트는 퍼블릭 ip만 알고있는 상황에서 요청을 하고, 이 퍼블릭 ip를 거치는 과정에서 여러 보안적 이슈를 해결할 수 있다. 그 다음에 프록시의 역할, 즉 요청하는 프라이빗 ip로의 연결을 대리(proxy)하는것이 바로 프록시 서버의 역할이다. .. 2020. 3. 24. [알고리즘] DATABASE에서 여러 테이블을 JOIN해서 가져온 데이터배열 중복 제거, 정리(1) 어느 어플이든 어느정도 진행이 나가고 나서부터는 database에서 한번을 깔끔한 데이터를 가져와 보기가 힘들다. 그 이유는 미래의 데이터의 확장성때문인데, 예를 들면, 가장 큰 예로 이미지가 있겠다. 페이스북 게시물을 보면 한 게시물에 여러개의 사진이 들어있다. 게시물의 내용과 이 사진의 데이터가 하나의 테이블에 존재하게 된다면 게시물 당 사진의 개수가 한정되어있어야하므로 유연성, 확장성이 극히 떨어지게 된다. 그래서 보통은 사진테이블과 게시물 테이블을 따로 두고 한 게시물에 대해서 게시물 테이블에서의 게시물 데이터와 사진 테이블에서 해당 게시물 사진 데이터들을 합쳐서(JOIN) 서버로 가져와야하는데 그렇게 되면 받아오는 배열의 결과는 우리가 원하는 한 게시물의 객체에 이미지배열이 프로퍼티로 들어가 있.. 2020. 3. 21. [보안] ssl 활용 SSL이 활용되는 방법에는 크게 두가지가 있다. 1. 서버가 공인된 서버임을 인증(전자서명) - CA는 비공개키를 갖고있는데 전자인증을 신청한 서버에게 그 비공개키로 풀 수 있는 공개키를 갖고있는(공개키로 암호화된) 인증서를 서버에게 부여 전달 - (이 과정에서 서버는 그 공개키에 대한 비밀키도 갖게됨 => 클라이언트와의 소통에서 필요) - 서버는 해당 서버를 이용하려는 클라이언트에게 공개키로 암호화된 인증서를 전달 - 클라이언트(브라우저)는 해당 공개키에 해당하는 CA에게 암호화된 인증서를 전달하고 CA가 비공개키로 풀림을 보여줌으로써 이 서버가 공인된 서버임을 확인시켜줌 - 클라이언트는 여러 백신을 뚫고 깔끔하게 연결이 가능한 것. 2. 정보 보안 전달 - 인증서를 보내면서 거기에 담겨있는 공개키를 .. 2020. 3. 16. [linux] ec2 인스턴스 사용자의 ssh 보안 접속방법 두 가지 : 키페어, 비밀번호 프로그램의 서버 본체를 ec2 인스턴스에 올려 관리하고 있던 중 프로그램 일부분을 외주에게 맡길 부분이 있었고 외주가 맡은 부분을 이 인스턴스 내부에서 새로운 사용자를 부여하여 같이 관리를 해야했기 때문에 인스턴스 접속을 공유해야하는 일이 생겼다. 내가 ec2서버를 만든 후 부터 디폴트로 사용하던 사용자 이름을 ubuntu 접속주소를 ubuntu@ec2-12-345-678-90.ap-northeast-2.compute.amazonaws.com (가주소), 인스턴스 생성 시 새로 발급받은 key-pair이름을 ubuntukey.pem 이라고 하자. 사용자이름 : ubuntu 키 파일 : ubuntukey.pem 접속주소 : ubuntu@ec2-12-345-678-90.ap-northeast-2.comput.. 2020. 3. 7. [MySQL] ORDER BY에 여러가지 기준과 선순위/후순위가 있을 때 ORDER BY는 기본적으로 SELECT 한 결과물들을 어떻게 정렬할 것인가를 결정해준다 예를 들면 한 유저가 갖고있는 쿠폰목록을 가져오려고 할 때 더 나중에 추가된 쿠폰(최근 쿠폰)부터 차례로 정렬해서 가져오고 싶을 때 ORDER BY coupon_idx DESC // 더 나중에 추가된 쿠폰의 idx부터 내림차순으로(DESC)! 를 SELECT문에 덧붙여주면 된다. 실제 쿼리문을 보자 SELECT coupon_idx, coupon_title, coupon_detail // 가져오려는 칼럼 FROM coupon// 테이블명 : coupon WHERE user_idx = 3// user_idx 칼럼이 3인 쿠폰을 선별해라! ORDER BY coupon_idx DESC// coupon_idx가 큰 것부터 내.. 2020. 3. 3. [MySQL] 여러 테이블 합쳐서 SELECT하기 - JOIN ~ ON ~ 데이터베이스에서 게시글 정보를 꺼낼 때 '게시글'이라는 한 테이블이 게시글에 대한 모든 정보를 갖고있지 않는다. 예를 들면 우리가 한 게시글을 보면 게시글의 제목, 내용 뿐만 아니라 게시글을 쓴 사람, 게시글의 첨부파일, 게시글에 대한 좋아요수 등 완전 직접적이진 않은(?) 정보 또한 보여주고 있다. 이 게시글의 모든 정보를 데이터베이스에서 꺼낼 때 [게시글] 테이블엔 게시글의 '제목', '내용' 을 갖고있고 [유저] 테이블에 게시글을 쓴 '사람 정보' [게시글 좋아요] 테이블에 게시글과 좋아요 한 사람의 매칭되는 정보가 들어있다. 그리고 클라이언트가 게시글 정보 조회를 요청하면 서버는 이 세 테이블의 내용을 합쳐서 응답 데이터로 보내줘야 한다. 여기서 두가지 방법이 있다 1) 데이터베이스에서 세 테이블.. 2020. 3. 1. [javascript] 객체{}에 프로퍼티(key : value) 추가하는 방법 이전에 정의해 놓은 객체에 속성을 추가하는 일이 생긴다 예를 들면 클라이언트가 게시글을 등록할 때 게시글 제목, 게시글 내용을 묶은 게시글 객체를 서버에 요청하고 서버 내에서 클라이언트로부터 받은 게시글 객체에 해당 유저 정보를 속성(프로퍼티)으로 추가하는 경우다 코드로 보면 클라이언트가 서버에 요청한 게시글(리뷰)객체 Review가 있다고 하자 { "reviewTitle" : "어서오세요", "reviewComment" : "안녕하세요 홍지원입니다" } 서버는 따로 갖고있던 리뷰를 쓴 유저 정보를 속성으로 추가한다고 하면 목표 : { "userIdx" : 3, "userName" : "홍지순", "reviewTitle" : "어서오세요", "reviewComment" : "안녕하세요 홍지원입니다" } .. 2020. 3. 1. 이전 1 ··· 8 9 10 11 12 다음