오랜만에 OMV 관련 게시글을 남기네요 :)
최근 제 OMV 게시글 중 Seafile 관련해서 DDNS 적용이 안 된다는 분들이 많았는데요, OMV를 오랜만에 설치해 확인해보니 정말 안 되더라구요. 후..
SSH 로 접속해서 왜 안 되나 봤더니, 일단 Nginx 플러그인으로 웹 서버를 추가하는 순간부터 안 됩니다.
추가해볼게요.
이런 식으로, 이름 기반 웹 서버를 추가해볼게요. 이름 기반일 경우 기본 HTTP 포트인 80번을 사용합니다.
적용해보면 세상 깔끔하게 죽습니다. 적용하는 순간 내부적으로 Nginx가 다시 실행되는데, 실행에 실패해 죽는 겁니다. 터미널로 접속해 확인해보죠.
service nginx status
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since Fri 2018-03-09 16:01:25 KST; 1s ago
Process: 8325 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 8918 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Process: 8912 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 32060 (code=exited, status=0/SUCCESS)
Mar 09 16:01:23 odroidxu4 nginx[8918]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 09 16:01:23 odroidxu4 nginx[8918]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 09 16:01:24 odroidxu4 nginx[8918]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 09 16:01:24 odroidxu4 nginx[8918]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 09 16:01:25 odroidxu4 nginx[8918]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 09 16:01:25 odroidxu4 nginx[8918]: nginx: [emerg] still could not bind()
Mar 09 16:01:25 odroidxu4 systemd[1]: nginx.service: control process exited, code=exited status=1
Mar 09 16:01:25 odroidxu4 systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Mar 09 16:01:25 odroidxu4 systemd[1]: Unit nginx.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
실행에 실패한 것을 알 수 있어요. Address already in use라고 하는데, 0.0.0.0:80 인 말은 곧 80번 포트를 다른 프로세스가 잡고있단 말이에요.
하지만 포트 검색 시 아무 프로세스가 잡히지 않습니다.
lsof -i :80
netstat -antp | grep 80
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 2623/python2.7
tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 2423/seaf-server
tcp 0 0 192.168.100.61:22 192.168.100.2:57806 ESTABLISHED 3631/sshd: odroid [
tcp6 0 0 192.168.100.61:80 192.168.100.2:41624 TIME_WAIT -
tcp6 0 0 192.168.100.61:80 192.168.100.2:41622 TIME_WAIT -
tcp6 0 0 192.168.100.61:80 192.168.100.2:40722 TIME_WAIT -
80번 포트면서 LISTEN인 상태가 있어야 누군가 잡고 있단 겁니다. 근데 아무 것도 없어요. 이상하네요.
cat /etc/nginx/sites-enabled/zzz-omv-nginx
server {
listen 80;
listen [::]:80;
server_name example.com;
index index.html;
access_log /var/log/nginx/443a8dec-163c-44c1-8490-ebc542be292f-access.log;
error_log /var/log/nginx/443a8dec-163c-44c1-8490-ebc542be292f-error.log;
large_client_header_buffers 4 8k;
}
이 코드가 Nginx 실행 서버 목록에 포함되는 순간 망가지는 겁니다. 즉, 저 파일을 지우면 다시 웹 GUI에 접속하실 수 있어요.
rm /etc/nginx/sites-enabled/zzz-omv-nginx
service nginx restart
그리고 다시 접속해보면 접속이 됩니다.
이런 화면이 나올 거예요. 적용하겠냔 말인데, 이 때 Revert 를 눌러줍니다.
다시 사용하실 수 있으실 거예요.
지금은 일단 OMV4가 나오거나 패치되기 전까진 DDNS를 제대로 사용할 수 없는 걸로 보입니다. OMV 개발자들도 해당 문제를 알고 있는 것 같구요. 만약 서버 추가할 때 고장났다면, 이 해결 방법을 통해 임시로 해결한 뒤 포트포워딩으로 사용해주세요.
너무 늦은 피드백 죄송합니다 :)
추가) OMV 관리자 사이트의 포트를 80이 아닌 다른 걸로 바꾸면 Nginx 서버 추가가 문제 없이 되네요 :)
'NAS & ODROID > NAS, ODROID' 카테고리의 다른 글
ODROID N1 - The Next ODROID! (12) | 2018.03.11 |
---|---|
OMV 3 -> OMV 4 업그레이드 방법 (12) | 2018.03.09 |
OMV 에서 SSH 접속하는 방법 (6) | 2018.01.25 |
ODROID HC2 - 출시! (12) | 2018.01.17 |