티스토리 뷰

생활 속/홈서버

RT-N56U에 nginx 올리기

이치로 2013. 5. 26. 17:57


일단 커스텀 펌웨어가 올라가 있고, optware가 설치되어 있다는 가정 하에 출발한다.


웹서버를 구축하고 싶은데, APM을 올릴까 하다가 요새 인기가 많은 것 같아서 설치해 봤다.


ipkg install libuclibc++

ipkg install nginx


를 ssh 환경에서 입력해서 설치한다. 그냥 nginx만 설치하면, 나중에 /opt/sbin/nginx: can't load library 'libuClibc++.so.0 이라고 에러가 뜨니까 dependency가 있는 저 라이브러리를 먼저 설치해 줘야한다.


설치가 완료되고 자동으로 시작하려고 하지만, 또 이상한 에러가 난다. nginx: [emerg] getgrnam("nogroup") failed.

Apache의 httpd.conf와 같은 nginx 설정 파일을 수정해 주면 된다.


vi /opt/etc/nginx/nginx.conf


여기서 #user nobody 로 주석처리 되어 있는 것을 user nobody nobody 로 수정한다. 잘 돌아간다. master process와 그 하위 process로 나뉘는데 그게 정의가 안 되어서 에러가 나는 것 같다.


설정 파일을 살펴보면 8082가 기본 포트인데, 80 포트로 웹서버를 사용하고 싶어서 아래와 같이 설정 파일의 server 블록에서 80번 포트를 listen하도록 하면 이미 돌아가는 httpd 프로세스가 점유하고 있기 때문에 nginx가 정상적으로 실행이 되지 않는다.


server {

listen 80;

server_name mydomain.com;

root /www;

index index.html index.htm;

}


이유는 이미 웹기반의 공유기 설정 페이지를 운용하기 위해서 커스텀 펌웨어서 자체적으로 httpd를 돌리고 있기 때문이다. 따라서


fuser -k 80/tcp


로 억지로 죽이고 nginx를 실행하면 잘 되긴 하는데, 그럼 공유기 설정 페이지가 접속 불가 상태에 빠진다. -_-;


방법은 내부에서는 다른 포트로 서버를 설정하고 포트포워딩을 그 포트로 해주면 된다. 예를 들면,


server {

listen 8080;

server_name mydomain.com;

root /www;

index index.html index.htm;

}


그 뒤 공유기 설정 페이지에서 외부 80 → 192.168.1.1의 8080으로 포트포워딩 하도록 설정하면 웹서버가 잘 돌아간다.



참고한 글 http://uk.nyclee.net/2012/04/30/tomatousb-roku-roksbox-setup/

나중에 php를 연동할 때 필요할 것 같은 글 http://www.nslu2-linux.org/wiki/HowTo/ReverseProxy

서버 재시작 명령어 /opt/etc/init.d/S80nginx restart




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
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
글 보관함