NginxでデフォルトのVirtualHostを設定する

NginxではリクエストのHostヘッダとserver_nameが一致しなかった場合、一番最初に読み込まれたVirtualHostの設定が適用される。
default_serverを記述することでデフォルトのVirtualHostを設定することができる。

ELBのヘルスチェックはデフォルトのVirtualHostに対してリクエストが行われる。
デフォルトのVirtualHostをそのままサービスに使用すると下記現象が発生する。
・サービスのアクセスログとELBヘルスチェックのアクセスログが混ざる
・IP制限やBasic認証を行うとELBからも見られなくなる →OutOfServiceになる
・設定ファイルが複雑になる

「デフォルトのVirtualHostとサービスのVirtualHostを分ける」ことで解決する。

[1]デフォルト用のVirtualHostを作成する
(1)設定ファイルを作る
/etc/nginx/conf.d/000-default.conf

[code]
server {
listen 80 default_server;
server_name localhost;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
[/code]

(2)ファイルを作成する

[code]
echo “index” > /usr/share/nginx/html/index.html
[/code]

[2]サービス用のVirtualHostを作成する
(1)設定ファイルを作る
/etc/nginx/conf.d/001-domain.com.conf

[code]
server {
listen 80;
server_name www.domain.com;
server_name domain.com;

[/code]

普通じゃない「ssh: connect to host [IPアドレス] port 22: Connection refused」

サーバ管理者なら誰しも一度は出会ったことのある絶望的なエラー
「ssh: connect to host [IPアドレス] port 22: Connection refused」

別サーバにRootVolumeをマウントして
(1)sshd_configあってる
(2).ssh/authorized_keysあってる
(3)ネットワークまわりあってる
(4)FWまわりあってる

困った。

ログには「fatal: /var/empty/sshd must be owned by root and not group or world-writable.」

結果、/var/empty/sshdは711じゃないといけないらしい。
[code]
# ls -ld /var/empty/sshd/
drwx–x–x. 2 root root 4096 2014-11-13 17:54 /var/empty/sshd/
[/code]

CentOSにJenkinsをインストールする

みんな大好きJenkinsおじさんをインストールします。

Javaまわりのインストール
[code]
yum -y install java-1.7.0-openjdk java-1.7.0-openjdk-devel
[/code]

リポジトリの取得
[code]
cd /etc/yum.repos.d/
curl -OL http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm –import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
[/code]

Jenkinsのインストール
[code]
yum -y install jenkins
[/code]

Jenkinsの設定
・ProcessTreeKillerの無効+Timezoneの設定
・起動ポートの変更(8080->8000)
・サブディレクトリの変更 http://(IPアドレス)/jenkins

/etc/sysconfig/jenkins
[code]
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.util.ProcessTree.disable
=true -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Tokyo"
JENKINS_PORT="8000"
JENKINS_ARGS="–prefix=/jenkins"
[/code]

Jenkinsの起動と自動起動設定
[code]
/etc/init.d/jenkins start
chkconfig jenkins on
[/code]

ttyなしでsudoできるように+jenkinsユーザにsudo権限を与える
visudo
[code]
#Defaults requiretty
jenkins ALL=(ALL) NOPASSWD:ALL
[/code]

nginxに80から8000へ飛ばす設定を追加
[code]
location ~ /jenkins {

proxy_pass http://localhost:8000;
}
[/code]

Jenkinsへアクセス
http://(IPアドレス)/jenkins

Postfixの再送間隔

Postfix経由のSESでメール送信をしている場合、SESが詰まってメールがキューに行ってしまう。

再送間隔が長くて困ったので/etc/postfix/main.cfに下記を追加

[code]
minimal_backoff_time = 120s
maximal_backoff_time = 600s
maximal_queue_lifetime = 24h
bounce_queue_lifetime = 24h
queue_run_delay = 120s
[/code]

[Postfix] 再送設定
Postfixの再送設定はデフォルトだとちょっとお人よしですよ | clicktx::Tech::Memo