nginxが.htaccess使えないの忘れていたので、HTTPで来たアクセスをHTTPSにリダイレクトする設定を今更書いた
server {
listen 80;
server_name www.jhhk-family.net;
return 301 http://www.jhhk-family.net/$request_uri;
}
nginxが.htaccess使えないの忘れていたので、HTTPで来たアクセスをHTTPSにリダイレクトする設定を今更書いた
server {
listen 80;
server_name www.jhhk-family.net;
return 301 http://www.jhhk-family.net/$request_uri;
}
AWSにメールサーバーを移設した際に、STARTSSLからSMTPSとIMAPSの環境に変更したので、そのメモ
環境:
AWS EC2 (Amazon Linux AMI 2017.09.1 (HVM), SSD Volume Type)
セキュリティグループ:
22/tcp , 25/tcp, 80/tcp(Let’s Encryptの認証用に一時的に開ける), 465/tcp, 993/tcp を開けておく。
必要なパッケージをインストール
yum install postfix dovecot cyrus-sasl cyrus-sasl-plain
LetsEncryptでメールサーバー用の証明書を発行
wordpress をELB+EC2でHTTPS通信させる
を参照
(SMTPSに必要な箇所のみ記載)
/etc/postfix/postfix.cf
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.jhhk-family.net/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.jhhk-family.net/privkey.pem
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
tls_high_cipherlist = kEECDH:+kEECDH+SHA:kEDH:+kEDH+SHA:+kEDH+CAMELLIA:kECDH:+kECDH+SHA:kRSA:+kRSA+SHA:+kRSA+CAMELLIA:!aNULL:!eNULL:!SSLv2:!RC4:!MD5:!DES:!EXP:!SEED:!IDEA:!3DES
smtp_tls_ciphers = high
smtpd_tls_ciphers = high
smtpd_tls_mandatory_ciphers = high
/etc/postfix/master.cf
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtpd_client_restrictionsは未設定。必要に応じて。
/etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain
!include auth-system.conf.ext
/etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = </etc/letsencrypt/live/mail.jhhk-family.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.jhhk-family.net/privkey.pem
ssl_protocols = !SSLv2 !SSLv3 !TLSv1
ssl_cipher_list = HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA:!RC4:!3DES:!RSA
/etc/dovecot/conf.d/10-master.conf
service imap-login {
# inet_listener imap {
# port = 143
# }
inet_listener imaps {
port = 993
ssl = yes
}
最後にpostfix、dovecot、saslを起動する。
service saslauthd start
service postfix start
service dovecot start
pythonのramdomモジュールを使って、20人を超える飲み会の座席を固めてみる。
ramdomモジュールは、loop内で使っても、n個 – 1とかには出来ないらしく、10枚のカードから1枚選んで、また10枚の中に戻す。と言った動きになる。
member.yml
※氏名は平成21年生まれの名前ランキングから抜粋
[code]
member:
– "佐藤 優衣"
– "田中 美羽"
– "佐藤 花音"
– "鈴木 大翔"
– "吉田 悠人"
– "田中 優衣"
– "高橋 美結"
– "佐藤 愛莉"
– "鈴木 杏奈"
– "吉田 百花"
– "佐藤 翔太"
– "山口 結愛"
– "田中 大翔"
– "伊藤 悠真"
– "加藤 颯真"
– "佐藤 優成"
– "森 悠真"
– "中村 優希"
– "田中 悠翔"
– "鈴木 悠真"
table:
– A-1
– A-2
– A-3
– A-4
– A-5
– A-6
– B-1
– B-2
– B-3
– B-4
– B-5
– B-6
– C-1
– C-2
– C-3
– C-4
– C-5
– C-6
– C-7
– C-8
[/code]
lottery.py
[code]
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import yaml
import random
base = os.path.dirname(os.path.abspath(__file__))
input = (os.path.join(base,’member.yml’))
f = open(imput, ‘r’)
result = yaml.load(f)
f.close()
members= (random.sample(source[‘member’],len(source[‘member’])))
tables = (source[‘table’])
for (t,m) in zip(tables,members):
print(t + ‘\t’ + m)
[/code]
[code]
(random.sample(source[‘member’],len(source[‘member’])))
[/code]
がramdomモジュールを使っている箇所で、
random.sample(配列,何個取るか?)と使う。
全メンバーを1度のみ抽出するので、len(source[‘member’])としている。
MySQLのデータをBigqueryに転送する。
固定のテーブルを送信する方法は
https://qiita.com/tashiro_gaku/items/f7fa0f1a99c759d947a7
とかに書いているけどけど、やりたかったのは
1) ログ保存テーブルは、updateカラムを見て差分でBigqueryに送信する。
2) 一部のテーブルは、全レコードBigqueryに送信する。
3) 上記、1、2の対象テーブルはconfファイルを読んで動的に動かしたい
(出来れば運用側で勝手に対象テーブルの追加、削除をやって欲しい。。。)
MakeJSON.py # jsonとyamlを生成
Execue_embulk.py # Embulk転送の実行
conf/embulk_json/ # 対象テーブルを元にBQ転送時の定義ファイルが作成される
embulk_yaml/ # 対象テーブルを元にEmbulk実行時の定義ファイルが作成される
keys/ # BQ接続時のjson_keyを置く
conf.yaml # MySQLのログイン情報、対象テーブルの情報を定義
embulk_tmp # Embulkのyaml生成で使うテンプレート
使い方
MakeJSON.pyの実行はいつでもいいがExecue_embulk.pyは前日分も送信するので、日付が変わってから実行する。
0 23 * * * python3 MakeJSON.py
30 0 * * * python3 Execue_embulk.py
wordpressの移設に少し手間取ったのでメモ
wordpressやELB、EC2の動かし方は割愛するが、普通のやり方。
ただ、以前に借りていたVPSでLets EncryptでHTTPS化していたブログを移設した。
ハマった所1: wp-adminのリダイレクトループ
管理画面での SSL 通信
リンク先に書いているけど、wp-includes/default-constants.phpの、
[code]
if ( !defined( ‘FORCE_SSL_ADMIN’ ) ) {
if ( ‘https’ === parse_url( get_option( ‘siteurl’ ), PHP_URL_SCHEME ) ) {
define( ‘FORCE_SSL_ADMIN’, true );
} else {
define( ‘FORCE_SSL_ADMIN’, false );
}
}
[/code]
を
[code]
if ( !defined( ‘FORCE_SSL_ADMIN’ ) ) {
if ( ‘https’ === parse_url( get_option( ‘siteurl’ ), PHP_URL_SCHEME ) ) {
define( ‘FORCE_SSL_ADMIN’, true );
if ( ! empty( $_SERVER[‘HTTP_X_FORWARDED_PROTO’] ) && $_SERVER[‘HTTP_X_FORWARDED_PROTO’] == ‘https’ ) {
$_SERVER[‘HTTPS’]=’on’;
}
} else {
define( ‘FORCE_SSL_ADMIN’, false );
}
}
[/code]
に変更する。
ハマった所2: WPやプラグイン更新のFTP設定
config.phpの末尾に、
[code]
define(‘FS_METHOD’,’direct’);
[/code]
を記載する。
centosでdirnameを実行すると、そんなコマンド無いよ!と怒られたのでメモ
※他のメンバーがOSインストールしたんだけど、baseだけしか入れてないのかな?
# dirname
dirname: missing operand
詳しくは `dirname –help’ を実行して下さい.
[code]
yum -y install coreutils.x86_64
[/code]
[code]
# cpu情報を表示
Get-WmiObject -Class Win32_Processor
# 物理コア数を表示
Get-WmiObject -Class Win32_Processor | Format-List NumberOfCores
# 論理コア数を表示(THH)
Get-WmiObject -Class Win32_Processor | Format-List NumberOfLogicalProcessors
[/code]
と、色々と調べたけど、
[code]
Get-WmiObject -Class Win32_Processor | Format-List NumberOfCores, NumberOfLogicalProcessor
[/code]
が一番すっきりする
上手く動かねないじゃん!と思ってググった備忘録
一般的な事かもしれないけど、書き方のルールは以下の通り
その場合は設定変更の場合は、対象をユニークになるように指定する必要がある。
netsh advfirewall firewall show rule name=”Windows リモート管理 (HTTP 受信)” dir=in
→ 2つある
netsh advfirewall firewall show rule name=”Windows リモート管理 (HTTP 受信)” dir=in profile=”domain,private”
→ ユニーク
netsh advfirewall firewall show rule name=”Windows リモート管理 (HTTP 受信)” dir=in profile=”pblic”
→ ユニーク
netsh advfirewall firewall set rule name=”Windows リモート管理 (HTTP 受信)” dir=in profile=”domain,private” new profile=any
スケール調整の覚書
グラフ枠のプロパティ/グラフ/垂直スケール の最大値を100から1000に上げる
NetworkInterface/NIC名/Bytes Sent/sec
・・・ GigaNicを積んでいる場合、スケールは0.00001 でxxxMB/s
※グラフ赤線
NetworkInterface/NIC名/Packet Sent/sec
・・・ GigaNicを積んでいる場合、スケールは0.001 でxxxMbps
※グラフ黄緑線
新規にwindows2012サーバーを準備し、WindowsでポリシーベースのQOSを使ってS3へのアップロードスピードを帯域制御する方法をトレースしてみた。
QoSの設定はこの通りだが、「出力方向のスロットル率を指定する」には注意が必要。
検証では200MBbpsに設定を行ったが、物理1Gの回線環境で800MBps以上トラフィックが流れてしまう。
MSに問い合わせをして調査、検証を行った結果、
windows2012のインストール時点のQoSのバグっぽい事まで突き止める。
(Windowsアップデートしたら動きが改善されているので、どこかでパッチが当たった模様)
Windowsアップデート前: 制限の設定値の10倍が実際の制限値となる。
・ QoSを200MBps(204800 KBps)に制限 → トラフィックが200MBps以上
・ QoSを 20MBps(20480 KBps) に制限 → トラフィックは200MBps以下になる
Windowsアップデート後: 制限の設定値と同じ値が実際の制限値となる。
・ QoSを200MBps(204800 KBps)に制限 → トラフィックが200MBps以下になる
MSからKB番号の返答が来たら追記します。