質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

解決済

1回答

8684閲覧

【nginx】 [emerg] duplicate upstreamのエラーが出る。

退会済みユーザー

退会済みユーザー

総合スコア0

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

0クリップ

投稿2018/04/24 23:49

編集2018/04/25 23:39

UbuntuServer上で、nginx、gunicornを使って、Djangoのアプリを動かそうとしています。

nginxの設定ファイルをチェックするために、
sudo nginx -t
を実行すると、

nginx: [emerg] duplicate upstream "test1" in /etc/nginx/sites-enabled/default:18
nginx: configuration file /etc/nginx/nginx.conf test failed

というエラーが出ます。

/etc/nginx/sites-enabled/default
の内容は、下記の通りです。
「upstream testa」は重複していないと思うのですが、なぜ、このようなエラーが出るのか分かりません。

upstream testa{ server 127.0.0.1:3000; } server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; access_log /var/log/nginx/localhost.access_log; root /var/www/html; server_name www.testafields.com; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. proxy_set_header Host $host; proxy_pass http://testafields; } upstream testb{ server 127.0.0.1:8001; } server { listen 80; access_log /var/log/nginx/testb.access_log; root /var/www/html; server_name testb.jp; location / { proxy_set_header Host $host; proxy_pass http://testb; } } upstream testc{ server 127.0.0.1:2000; } server { listen 80; access_log /var/log/nginx/testc.access_log; root /var/www/html; server_name test-c.jp; location /{ proxy_set_header Host $host; proxy_pass http://testc; } }

ちなみに、それまではnginxが動いていたのですが、

[emerg] 1645#1645: directive "server_name" is not terminated by ";" in /etc/nginx/sites-enabled/default:53

というエラーが出たため、
server_name www.testafields.com
の後の、「;」を付けました。
この後から「 [emerg] duplicate upstream」のエラーが出始めたので、上記の「;」を付けたのが問題なのかとも思いましたが、「;」を外しても影響なかったので、関係ないのではないかと思います。

もし、お気づきの点がある方が見えましたら、ご教示頂けないでしょうか。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2018/04/25 14:46

/etc/nginx/sites-enabled/ 以下の default よりも先に読み込まれるファイルで、同じ upstream が存在しませんでしょうか?
退会済みユーザー

退会済みユーザー

2018/04/25 23:38 編集

ありがとうございます。ご指摘事項を確認して、修正した所、うまく起動しました。内容については、回答に記載しました。
guest

回答1

0

ベストアンサー

default以外にnginxに読み込まれているファイルが無いかとご指摘を頂いたので、確認しました。

/etc/nginx/nginx.conf
には、下記の記述があります。

## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;

そのため、読み込まれているのは、sites-enabledの中にあるファイルだと思います。
ls sites-enabled
をしてみたら、下記の2つのファイルが入っていました。

1
default

1というファイルが、いつ、なぜできたのか分からないのですが、中身はdefaultと同じものだったので、削除しました。
これにより、
nginx -t
configuration file /etc/nginx/nginx.conf test is successful
になり、
nginxは、無事起動しました。
ありがとうございました。

投稿2018/04/25 23:37

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問