request_time or upstream_response_time

nginxにおいて表題の件について。

■ 環境

  • nginx 1.12.2

■ upstream_response_time

先日のエントリにおいて、”request_time“と”upstream_response_time“が同じ数値になったと記載した。同一ホスト内でかと思い、他のホストにproxyしてみた。しかし結果はやはり同じ数値が記載された。

よくよく考えてみればnginx自体に掛かっている処理はほとんどなく、proxy先での処理と転送処理だけなので当然といえば当然の結果であった。nginx自体でもっといろいろな処理をしている場合にはこの数値は変わってくるのであろうか。

単なるメモである。

以上。

■ 関連

upstream_response_time

upstream_response_time

nginxにおいて表題の件。

■ 環境

  • nginx 1.12.2

■ upstream

upstream“モジュールを使ってproxyしている。処理時間を出したいなと思い調べてみると”log_format“に”upstream_response_time“を出力すれば良いようだ。

Module ngx_http_upstream_module
https://nginx.org/en/docs/http/ngx_http_upstream_module.html

log_format main '$http_x_forwarded_for - $remote_user [$time_local] '
                '"$request" $status $body_bytes_sent '
                '"$http_referer" "$http_user_agent" '
                '$request_time $upstream_response_time';

ログファイルには下記のようになった。

XX.XX.XX.XX - - [19/Feb/2018:19:08:51 +0900] "GET /login HTTP/1.1" 200 2175 "http://example.com/login/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" 0.043 0.043

今回は同一ホスト内へのproxyだったからか同じ数値になった。

以上。

■ 関連

nginxで処理時間をログに出力

Chromeのキャッシュ

表題の件について。先日はChromeのDNSキャッシュにハマったが、今回はリダイレクトのキャッシュにハマった…。

■ 環境

  • Google Chrome
  • Mac OSX El Capitan

■ 301

Chromeが”301“のリダイレクトをキャッシュしてしまうと、リダイレクト元にアクセスしようとしてもChrome自体がリダイレクト先にアクセスしてしまう。リダイレクト元のWebサーバのアクセスログには何も残らないのでなんでだろう…としばらくハマってしまった。

設定 > 詳細設定 > 閲覧履歴データを消去する

上記の箇所から直近1時間のキャッシュを削除することで問題は解消された。

■ 関連

ChromeのDNSキャッシュをクリア

aws acm describe-certificate

表題について。

■ 環境

  • awscli 1.14.30
  • Mac OSX El Capitan

■ describe-certificate

個々の証明書についての情報を取得できる。オプションに”–certificate-arn“は必須であり、`aws acm list-certificates`の結果が必要である。

$ aws acm list-certificates
{
    "CertificateSummaryList": [
        {
            "CertificateArn": "arn:aws:acm:ap-northeast-1:XXXXXXXXXXXX:certificate/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "DomainName": "www.withsin.net"
        },
  :
    ]
}
$
$ aws acm describe-certificate --certificate-arn arn:aws:acm:ap-northeast-1:XXXXXXXXXXXX:certificate/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
{
    "Certificate": {
        "CertificateArn": "arn:aws:acm:ap-northeast-1:XXXXXXXXXXXX:certificate/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        "DomainName": "www.withsin.net",
        "SubjectAlternativeNames": [
            "www.withsin.net"
        ],
        "DomainValidationOptions": [
            {
                "DomainName": "www.withsin.net",
                "ValidationStatus": "SUCCESS",
                "ResourceRecord": {
                    :
                },
                "ValidationMethod": "DNS"
            }
        ],
        "Serial": "XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX",
        "Subject": "CN=www.withsin.net",
        "Issuer": "Amazon",
        :
        "Status": "ISSUED",
        :
        "KeyAlgorithm": "RSA-2048",
        "SignatureAlgorithm": "SHA256WITHRSA",
        "InUseBy": [
            "arn:aws:elasticloadbalancing:ap-northeast-1:XXXXXXXXXXXX:loadbalancer/app/withsin/XXXXXXXXXXXXXXXX"
        ],
        "Type": "AMAZON_ISSUED",
        :
    }
}
$

結構いろいろわかる。”ACMで発行された証明書”であるとか。ManagementConsoleでは一覧画面で出ている内容である。ちなみにインポートした証明書の場合は下記のようになっていた。

$ aws acm describe-certificate --certificate-arn arn:aws:acm:ap-northeast-1:XXXXXXXXXXXX:certificate/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
{
  :
        "Serial": "XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX",
        "Subject": "CN=blog.withsin.net",
        "Issuer": "GeoTrust Inc.",
        "ImportedAt": XXXXXXXX.0,        :
        "Status": "ISSUED",
  :
        "Type": "AMAZON_ISSUED",
  :
}
$

以上。

■ 関連

aws acm list-certificates

強制コピー

Amazon Linuxにおいて表題の通り。毎度ハマっている気がするのでメモ。

■ 環境

  • Amazon Linux

■ cp

ファイルをコピーしようとしたところ、下記のように確認がされた。

$ cp -pr /path/to/dir/* .
cp: overwrite ‘./index.php’? 

ファイルが多いので毎回”y“とうっていくのは面倒である。かといって`yes`コマンドを使うのも。そもそも”-f“オプションがあるだろうと思いやってみたが変わらず。

$ cp -prf /path/to/dir/* .
cp: overwrite ‘./index.php’? 

“-f”オプションって無かったか?と思ったが`man cp`にもしっかり載っている。と思っていたら`alias`が設定されていた。

$ alias
alias cp='cp -i'
  :
$

これが”-f“が効かない原因のようである。下記のように解決する。

$ \cp -prf /path/to/dir/* .
$

無事やりたいことができた。

以上。