systemd: nginx는 시작 시 /etc/hosts 항목을 확인하지 않습니다.

systemd: nginx는 시작 시 /etc/hosts 항목을 확인하지 않습니다.

Debian 9를 사용하면 systemd는 다음과 같이 작동합니다.

  • 시작 시 nginx를 읽을 수 없고 /etc/hosts시작하지 못하는 것 같습니다.
  • 전원을 켠 후 명령이 systemctl start nginx정상적으로 작동할 때

참고: 이 파일 /etc/hosts은 정확하며 모든 테스트 중에 변경되지 않습니다.

잠시 검색하여 systemd-resolvednginx 이전에 시작을 시도했습니다. 효과가 없습니다.

10월 13일 11:14:01 server-dev systemd-resolved[466]: 긍정적인 신뢰 앵커:
10월 13일 11:14:01 server-dev systemd-resolved[466]: . DS 19036 8 2 49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5
Oct 13 11:14:01 서버 개발 systemd-resolved[466]: . DS 20326 8 2 E06D44B80B8F1D39A95C0D7C65D0840404040409bbc683457104237f8EC8D
10월 13일 11:14:01 Server-dev Systemd-Resolved [466] addr.arpa 16. 172.in-addr.arpa 17.172.in-addr.arpa 18.172. in-addr.arpa 19.172.in-addr.arpa 20.172.in-addr.arpa 21.172.in-addr.arpa 22.172.in-addr.arpa 23.172
10월 13일 11:14:01 서버 개발 systemd-resolved[466 ]: 시스템 호스트 이름 "server-dev"를 사용합니다.
10월 13일 11:14:01 server-dev systemd-resolved[466]: 시스템 DNS 서버 192.168.1.1로 전환되었습니다.
Oct 13 11:14:01 server-devshorewall[465]: Shorewall 5.0.15.6으로 컴파일 중...
Oct 13 11:14:01 server-dev systemd[1]: 네트워크 이름 확인을 시작합니다.
Oct 13 11:14:01 server-dev systemd[1]: 고성능 웹 서버 및 역방향 프록시 서버를 시작합니다...
Oct 13 11:14:01 server-dev systemd[1]: 사용자 시스템에서 더 많은 목표를 달성했습니다.
Oct 13 11:14:01 server-dev systemd[1]: 대상 그래픽 인터페이스에 도달했습니다.
10월 13일 11:14:01 server-dev systemd[1]: 시스템 실행 수준 변경에 대한 UTMP 업데이트를 시작합니다...
10월 13일 11:14:01 server-dev systemd[1]: 실행 수준 변경에 대한 시스템 UTMP 업데이트를 시작합니다.
10월 13일 11:14:01 server-dev nginx[502]: nginx: [emerg]
/etc/nginx/sites-enabled/default:33의 'server-dev.com' 업스트림에서 호스트 10을 찾을 수 없습니다. 10월 13일 11: 14:01 server-dev nginx[502]: nginx: 구성 파일 /etc/nginx/nginx.conf 테스트 실패
10월 13일 11:14:01 server-dev systemd[1]: nginx.service : 제어 프로세스가 종료되었습니다. code=exited status=1
10월 13일 11:14:01 server-dev systemd[1]: 고성능 웹 서버 및 역방향 프록시 서버를 시작할 수 없습니다.
10월 13일 11:14:01 server-dev systemd[1]: nginx.service: 장치가 실패 상태로 전환되었습니다.
10월 13일 11:14:01 server-dev systemd[1]: nginx.service: '종료 코드'로 인해 실패했습니다.

어떤 제안이 있으십니까?

답변1

작동하는 솔루션을 찾았습니다.nginx 프록시 구성. 더 나은 솔루션에 대한 영향, 의견 또는 제안이 확실하지 않습니다.

  1. dnsmasq 설치

  2. nginx 구성에 도메인 이름 확인자 추가

server {
# DNS 요청을 로컬 dnsmasq
파서 127.0.0.1로 리디렉션합니다.

# 이 두 줄이 없으면 nginx는 이름
설정을 올바르게 확인할 수 없습니다.$mt_proxy_from"http://server-dev.com:8000";
놓다$mt_proxy_dest"https://server-dev.com";
[...]
위치 / {
# 프록시 구성
Proxy_pass $mt_proxy_from;
Proxy_read_timeout 90
; $mt_proxy_from $mt_proxy_dest;
}}

나는 이 솔루션이 비효율적이어서 마음에 들지 않습니다.

  • dnsmasq를 설치하고 nginx에 리졸버를 추가하는 것이 좋을 것 같습니다.
  • 이름을 동적으로 확인하기 위해 NGINX 동적 변수를 추가하는 것은(언제인지 확실하지 않음) 로컬 주소가 고정되어 있으므로 이상해 보입니다.

질문: 뭔가 할 수 있는 방법이 있나요?깨끗한?

  • IP 주소 구성/etc/hosts
  • /etc/hostssystemd가 시작될 때 NGINX가 이름을 확인합니까?

원천:
https://stackoverflow.com/questions/8305015/when-using-proxy-pass-can-etc-hosts-be-used-to-resolve-domain-names-instead-of
https://www.jethrocarr.com/2013/11/02/nginx-reverse-proxies-and-dns-solution/

관련 정보