元RX-7乗りの適当な日々 このページをアンテナに追加 RSSフィード Twitter

RX-7(FD3S)WRX STI関連のキーワードで検索されて来られた方へ。
右サイドのカテゴリ『』をクリックすると関連する項目だけが表示されます。
日々の写真は『Flickr』で公開しています。

2016/02/05

Jenkins + Nginx(SSL) 構成での「リバースプロキシの設定がおかしいようです。」問題


(1ヶ月前くらいの話だけど)解決できたからメモっておく。私のケースは、あまりにもしょーもない恥ずかしい話で、インターネッツに事例が見つからなかったので晒しておこうと思います。

以下、時系列に書いていきます。OSは Ubuntu 14.04 LTS でござる。


Jenkinsのインストール

# apt-get install openjdk-7-jre openjdk-7-jdk
# wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
# sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
# apt-get update
# apt-get install jenkins

サクッと。

ほぼ公式のUbuntuでのインストールページのまま。


# service jenkins start

とかで起動させると、8080ポートでLISTENしてくれるので、アクセスできると思う。


Nginx + SSL の設定

# apt-get install nginx

Nginxのインストールは、上記だけだったかな。


upstream jenkins {
  server 127.0.0.1:8080 fail_timeout=0;
}

server {
  listen 80;
  server_name jenkins.domain.tld;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl;
  server_name jenkins.domain.tld;

  ssl_certificate /etc/nginx/ssl/server.crt;
  ssl_certificate_key /etc/nginx/ssl/server.key;

  location / {
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_redirect          http:// https://;
    proxy_pass              http://jenkins;
  }
}

Nginxの設定も、ほぼJenkinsサイトのドキュメントページのまま。

フロントのリバースプロキシ(Nginx)は、443(HTTPS)で受けて、バックエンドの8080(Jenkins)に投げるような設定です。SSL証明書の配置説明は割愛します。


とまぁ、前提としてはこんな感じです。


「リバースプロキシの設定がおかしいようです。」

で、上記設定で Nginx + Jenkins を動かしてみたところ、問題なく動いている・・・んだけど、 "Jenkinsの管理" 画面のトップに「リバースプロキシの設定がおかしいようです。」と表示される。


f:id:rx7:20160205195136p:image


これに関しては、公式のドキュメントや以下のエントリが参考になります。

原因は、 Location ヘッダの書き換えであったり、リバースプロキシでのURLエンコードの問題だったりすることが多いのですが、調べてみると今の環境では該当しない。

さて、なんでかなーと思っていたら、、、しょーもないミスだった。


[Jenkinsの設定] - [システムの管理] - [Jenkins URL] の設定値が、、、


  • ○ : https://(リバースプロキシのアドレス)/
  • × : http://(Jenkinsのアドレス):8080/

という感じで、Jenkins単体でテストしていた時から、Jenkinsそのものの設定を変え忘れていただけだったという・・・。

ショボ過ぎるミスで、誰もハマらないから、インターネッツに誰も残していなかったのだろうけど、誰かもう1人くらいハマる人がいるかもしれないので、ここに残しておきますね!

それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́


yujiro-araiyujiro-arai 2016/06/22 11:55 僕も全く同じミスしました!!ありがとうございます!

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/rx7/20160205/p1

オススメ (一部は、最近読んでいる本とも言う)
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus) クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~ [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド [24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 Linux-DB システム構築/運用入門 (DB Magazine SELECTION) キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置 スケーラブルWebサイト 実践ハイパフォーマンスMySQL 第3版 ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) SQLアンチパターン インターネットのカタチ―もろさが織り成す粘り強い世界― ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)