최근 서버를 이전하면서 nginx의 설치 및 설정을 변경할 부분이 발생했습니다. 이 과정에서 특정 호스트를 설정했음에도 적용되지 않는 이슈가 있어 원인과 해결 방법을 알아본 내용입니다.# nginx 특정 호스트만 접근 설정하기우선 host가 webisfree.com인 경우 우리는 설정 파일에서 server {} 블럭의 server_name 수정을 통해 해결 가능하리라 생각할 수 있습니다. 아마 이런 코드가 되겠군요~ 파일명이 default인 경우라면...@ /etc/nginx/sites-available/defaultserver { listen 80;&nb...
nginx 서버에서 이미지 등의 static한 파일을 설정하여 serve 하는 방법에 대하여 알아봅니다.예를들어 아래의 경로로 접근하는 모든 파일들은 서버의 특정 경로에 있는 파일에서 찾아 보여주도록 설정하려고 합니다.// 접근된 이미지 경로webisfree.com/images/abc.jpg// 연결할 서버의 경로/home/root/public/images이처럼 이미지 등의 파일 등을 특정 서버의 경로에 바로 연결하기 위해서는 먼저 nginx 설정이 필요합니다. nginx 설정 파일로 이동하여 파일을 편집하도록 합니다.@ /etc/nginx/site-availabl...
nginx를 사용하는 서버 웹 환경에서 서버를 재시작 하는 방법에 대하여 알아봅니다.# nginx 서버 재시작하기서버를 재시작하는 방법으로 restart와 reload 방법이 사용됩니다. 먼저 이 둘의 차이점은 무엇일까요?! nginx reload와 restart의 차이점이 둘의 가장 큰 차이점은 서버를 실제로 Shutdown 후 재시작하는 과정에 있습니다. 즉 restart의 경우 서버를 내리고 다시 시작하게 합니다. 하지만 reload의 경우 이와 달리 서버가 중단되지 않으며 단지 reload 시점의 설정 파일만 불러와 다시 적용하는 것이 차이점입니다....
nginx에서 프록시 서버 사용을 위해 다른 호스트, 머신으로 이동시키는 설정 방법을 알아봅니다.! 프록시 서버(Proxy server)란?클라이언트와 서버 사이에 존재하는 서버로 클라이언트의 요청을 받아 Reverse에 위치한 서버에 전달하는 상호 중계 목적의 서버를 말합니다. 프락시 서버가 사용되는 이유는 보안이나 트래픽 분산 등의 로드 밸런싱 목적으로 사용됩니다.# nginx 프락시 서버, 리다이렉트 설정하기아래서는 프락시 서버로 들어온 요청을 다른 위치로 포워딩, 리다이렉트 설정 방법에 대하여 알아봅니다. 먼저 아래와 같은 nginx 설정이 있다고 생각해 봅니...
브라우저에서 아래와 같은 에러가 발생할 수 있습니다. 아래 에러는 크롬 브라우저의 콘솔에 출력되는 에러 메시지입니다.net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)위와 같은 문제의 원인은 무엇이고 언제 그리고 어떻게 해결하였는지 알아보겠습니다.# 언제 CONTENT_LENGTH_MISMATCH 200 에러가 발생?서버에서 큰 용량의 파일을 로드하는 경우 위와 같은 에러가 발생했습니다. 예를들면 일정 크기 이상의 sitemap이나 용량이 큰 폰트 파일 등등 용량이 큰 static 정보를 읽을 때 발생합니다.특이한 점은 항상 발생하는 것은 아니...
원치 않는 국가에서 접근을 시도하는 경우 어떻게 하면 접속을 막거나 허용할 수 있는지 고민하게 되었습니다. 이유는 몇 가지 있는데 최근 급증한 데이터 트래픽 증가가 원인 중 하나였습니다.어쨌든 방문자의 접속을 제어하고 싶은데 어디서 제어할 것인가를 결정해야 합니다. 이 중에서 간단한 방법인 서버측 환경, nginx 설정을 사용하여 국가 별로 허용하거나 제한하는 방법을 알아봅니다.(호스팅 업체의 보안 그룹에 허용 가능한 ip 대역을 설정하는 방법도 존재하지만 ip 대역이 너무 많고 알아보기 어려운 이유 등으로 아래 방법이 더 쉽고 간단하다고 판단했습니다.)# ...
Python을 사용하여 웹서버를 구축하는 경우 nginx와 uwsgi를 사용한 웹서버 구성이 많이 사용됩니다. 저 역시 오랜 기간 이와 같이 사용해왔죠.uwsgi를 nginx서버와 연동하는 방법으로 웹소켓(socket)을 사용하는 방법이 있습니다. 얼마 전 잘 사용하던 AWS에서 Naver Cloud 서비스로 서버를 이전하면서 이 둘 사이의 연결이 잘 되지 않아 큰 위기를 겪게 되었죠.문제가 된 상황은 소켓 파일에 Permission에러가 발생한다는 것입니다... 제가 할 수 있는 여러가지의 조치를 취해서 다시 해보았지만 결국 이를 해결하지는 못했습니다. 물론 더 많...
도메인을 구매하여 사용하는 경우 다음처럼 두 가지 방식의 도메인 주소를 생각할 수 있습니다. 하나는 도메인 앞에 www가 있는 경우이고 하나는 www가 없는 경우입니다.1. www.webisfree.com2. webisfree.com물론 둘 다 사용할 수 있습니다. 다만 검색엔진을 고려하면 하나로 통일하는 편이 좋을 것입니다. 그렇다면 어떻게하면 될까요? 만약 www가 있는 경우 non-www 주소로 바꾸는 방법을 알아보겠습니다.우선 www.webisfree.com으로 들어온 방문자를 www가 없는 non-www 주소 webisfree.com으로 주...
Python을 사용하면서 uwsgi와 nginx를 사용하여 웹서버를 구축하려는 경우 uwsgi 서비스에서 다음과 같은 에러가 발생하였습니다.'StartJob filed to start'이와같은 에러 발생시 어떻게 해결할 수 있는지 알아보고자 합니다.# uwsgi 서비스 동작시 에러발생만약 서비스의 설정 파일이 /etc/init/test.conf인 경우라면 아래와 같이 이상 유무를 확인할 수 있습니다.@ /etc/init/test.confinit-checkconf test.confint-checkconf 명령어는 특정 conf 파일의 이상 유무를 확인해줍니다. 만약 이...
Python으로 웹개발 프로젝트를 진행시 개발서버 및 테스크 서버를 구축할 것입니다. 이때 브라우저에서 내부 ip(192.168.xxx.xxx)를 사용하여 접근 가능하도록 설정하였으나 브라우저에서 확인하는 경우 접근이 안되는 에러가 나타날 수 있습니다. 어떻게 해결할 수 있을까요?# 증상 및 해결방법먼저 서버를 구동한 후 localhost로 접속하면 잘됩니다. 하지만 이상하게도 내부 ip로 접근할 경우 접속이 안될 수가 있는데 의심할 수 있는 부분이 아래와 같이 두 가지이죠.1. OS 방화벽 문제(Firewall)2. Python run() 코드 문제방화벽에 따른 문...