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-resol[ DS 20326 8 2 E06D44B80B8F1D39A95C0D7C65D0840404040409bbc683457104237f8EC8D
10月13日 11:14:01 Server-dev Systemd-Reved pa 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-res ]: システムのホスト名 "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]:
高性能 Web サーバーとリバース プロキシ サーバーを起動します。
達成しました。
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]: 高性能 Web サーバーおよびリバースプロキシサーバーを起動できません。
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 にリダイレクトします。

#この2行がないと、nginxは名前
設定を正しく検証できません。$mt_proxy_fromhttp://server-dev.com:8000";
置く$mt_proxy_desthttps://server-dev.com";
[...]
場所/{
# プロキシの設定
Proxy_pass $mt_proxy_from;
Proxy_read_timeout 90
; $mt_proxy_from $mt_proxy_dest;
}}

私はこのソリューションが非効率的で気に入らない。

  • dnsmasqをインストールしてnginxにレゾルバを追加することをお勧めします。
  • 名前を動的に解決するためにNGINX動的変数を追加することは(いつかわからない)、ローカルアドレスが固定されているので奇妙に見えます。

Q:何かできる方法はありますか?きれい

  • 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/

おすすめ記事