とーますメモ

Ruby on Rails / Goなどの学習メモ

NinjaFirewallとCloudflareを併用時の設定

Cloudflareを使用すると、CloudflareのIPからのアクセスのみが記録されてしまうので オリジナルからのIPを取得したい場合は、別途設定が必要になる。 以下の記事を参考に.htninjaファイルを作成し、ドキュメントルートの親ディレクトリにデプロイする。 Ninj…

【Lightsail】Ubuntu上でNginxにSSL証明書を設定してみた

近々リリース予定のサイトがあるのだが、Let's Encryptの無料SSL証明書ではなく ちゃんとした有料の証明書を使用しようと思ったのでその過程を書いてみるSSL証明書はNamecheapからPositiveSSLを1年契約で$5.88で購入 ドメインの種類としては3つあるなかで一…

【Lightsail】DNS設定とWordPressでwww有・無の設定

以下の説明では対象とするドメインをwww.example.comとexample.comで説明するdigを多用するので以下の記事を参考 thoames.hatenadiary.jp DNS設定 LightsailのDNSレコード設定を以下にするAレコード: @.example.com、解決先: StaticIp-1 (静的IPと結びついて…

digコマンドの使い方について

dig

忘れやすいので自分用にメモオプション一覧が載っているページ 【 dig 】コマンド――ドメイン名からIPアドレスを調べる:Linux基本コマンドTips(158) - @IT良さげなTipsが載っているページ 10 Linux DIG Command Examples for DNS Lookup基本的に一番使う…

【Rails】production環境でもWelcomeページを表示する

以下の記事を参照Railsの開発用Welcome画面をproductionでも出す - Qiita

【SendGrid】"sendgrid.me 経由"を消す方法

以下のページを参照独自ドメイン利用(Sender Authentication)および設定時のDNSレコードについて、詳しく教えてください – サポート 使いやすくなった独自ドメイン利用設定機能(Sender Authentication)のご紹介 | SendGridブログ以下を行えばよかった。・D…

【Rbenv】Ubuntu18.04上で、Ruby 2.3.1がインストールできない

以下のコマンドでエラーが発生 $ rbenv install 2.3.1 ... ... /usr/include/openssl/x509.h:728:1: note: declared here DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl)) ^ Makefile:301: recipe for target 'ossl_x509crl.o' fail…

Vagrant × AnsibleでUbuntu18.04環境を設定してみる - Webサーバ編 -

全体像は、Webサーバ1台、DBサーバ1台をVagrantで設定し、Ansibleでそれぞれのサーバに設定を行う。 インストール 簡単な流れは 1)VirtualBoxをインストール 2)Vagrantをインストール 3)Vagrantfileを編集1)と2)については以下の記事のとおりに設…

【Ansible】defaultsとvarsの違いって?使い分ける方法を調べた

vars/main.ymlにも変数が書けることは知っていたが、Ansibleを使い始めてから、ずっとdefaults/main.ymlを使用していた。 ただどのように使い分けるのかは知らないのでいたので、調べた内容をこの記事にまとめてみた。色調べた結果、以下のサイトの説明が良…

ムームードメインからNamecheapにドメイン移管してみた。

現在、使用しているレジストラはムームードメインなのだが、できればSSL証明書取得も同じアカウントで管理したり、TTL設定などの細かい設定もしたかったので 経験がてら、ドメイン移管を初めてやってみることにした。 どのレジストラに移管するか? レジスト…

【Lightsail × WordPress】メール配信サービスのAmazon SESを使ってみた

基本的には以下のサイトの通りに設定すればOKだが、所々わかりにくい箇所があるので、自分なりにまとめる。 Amazon Lightsail の WordPress で E メール を有効にする | Lightsail ドキュメントちなみにWordPressは既にインストール済みであることと、SMTP設…

【Ubuntu】ユーザ管理の方法について、ちゃんと調べてみた

Linux上でユーザやグループを追加したり、権限を付与する方法については知っているが、プロダクション環境などのシビアな環境でのユーザ管理法についても学んで起きたいと思ったのでここに調べた内容を書き起こす。 ユーザ追加 ユーザ追加するコマンドは以下…

【PHP】エラーログが出たら、Slackに通知を送る設定

SwatchやLogwatchなんかを使うのが定番っぽいが Swatchは監視対象が複数ある場合は、複数のプロセスが常時立ち上がるのと 長い間更新されていないのが不安だったので断念。 Logwatchの場合は、別にこれでも良かったが、Postfixがデフォルトでインストールさ…

【PHP-FPM】適切なプロセス設定について

色んなサイトを見て知ったことは、適切な設定を行うためにはまず以下のことを知る必要があるということ。・使用可能なメモリ量 ・PHPプロセスが確保している平均メモリ量上記の内容を把握したのち、その内容をベースに以下の値を適切な値に設定する。・pm.ma…

【ApacheBench】使い方メモ

テスト対象のサーバにもインストールできるが、 テスト時はテスト対象とは別のホストから負荷テストを行う。 abはApacheに同梱されてはいますが、性能テストを実行する際には、測定対象のサーバの外部にあるホストからリモートで実行します。ローカルから実…

【Netdata】Ubuntu 18.04上にインストールした時のメモ

Netdata = リアルタイムリソース監視ツール何が良いかって、リアルタイムの状況がわかるっていうことと 閾値や頻度を適宜設定できるアラート機能が便利。Netdataの画面を開くとたくさんのセクションがあるが 大事なことはこのセクション毎の説明をしっかり読…

【fail2ban】WordPress用の独自フィルタ作成

以下のログに対応したものを作成する。・wp-login.phpに対してPOSTをリクエストを送っているもの※ 管理者のみがwp-login.phpするものなら良いが、不特定多数(woocommerceなど)が利用する場合は wpのフィルター機能と連携して作成するのが良いと思う。 fail…

【fail2ban】基本的な使い方

概要 Fail2banは、誤解を恐れずに言うと1)様々な種類のログファイルを監視して、 2)特定のパターンにマッチしたログ情報(主にアクセス元IP)を元に 3)アクション(主にiptablesで接続拒否)を行うためのツール。2)の特定のパターンにマッチさせる設…

【Nginx】OCSP Staplingについて

Nginxのエラーログを見てたら「OCSP_basic_verify() failed・・・」というエラーが出ていたので調べてみた。OCSP Staplingとは何か?の説明については以下のサイトの説明がわかりやすい。 OCSP Stapling nginx で OCSP Stapling (RapidSSL) | | 1Q77 How To …

【fail2ban】Ubuntu 18.04上で単純なsshdフィルターのみ使用しているのに、IPがbanされない現象

結論から言うとbackendに、pollingを指定していたのが原因だった。 ちなみにFail2banのバージョンは「v0.10.2」 backend: 対象のログについての指定。 auto, pyinotify, gamin, systemd, pollingの5つから選択可能。 systemdを選択すると、systemdのjournal…

Amazon LightsailでSSL設定をするときに注意すべき点

かなりハマった。 Amazon Lightsailには簡易ファイヤーウォールがあり、デフォルトだと22番と80番しか空いてないため ufwなどで443を開けてしまっていても、この簡易ファイヤーウォールのせいで、443が遮断されてしまう。注意してほしい。

【Chrome】httpのアドレスを入力してるのに、強制的にhttpsでリクエストされてしまう現象を止める方法

以下参考 How to stop an automatic redirect from “http://” to “https://” in Chrome - Super Userchrome://net-internals/#hstsを開いて、 「Delete domain security policies」の項目に、対象のURLを入力して、Deleteボタンを押せば強制的にhttpsリクエ…

【Ansible】Ubuntu 18.04でのMySQL設定

MySQLの設定ファイルであるmy.cnfの場所の確認方法 $ mysql --help | grep my.cnf /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 左から順に読み込まれる。 Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.c…

【Ansible】Githubのプライベート・リポジトリからGit cloneができない!!!

結論から言うと以下の流れで解決。1)ssh-agentの設定 2)ansible.cfgの設定 3)ansible taskの設定 1) ssh-agentの設定 以下のサイトにまとまっているので、そのとおりに対応。 qiita.comこの設定を行うことで、ssh接続時のパスフレーズ入力を省略する…

【Ansible】Nginx + Gunicornの設定

Nginx + Gunicorn + Flaskの環境構築を行った際のメモ。流れは、Client => Nginx => Gunicorn => FlaskNginxとGunicornの接続については以下のサイトが参考になった。 Nginx + Gunicorn + Django + Aurora (MySQL) の本番環境をAnsible Playbookで構成する -…

【Git】中身だけをcloneする方法

以下のように「.」を追記するだけ。 $ git clone [git_url] . ただし、git cloneを行うディレクトリは「空」である必要がある。

【SSH】VPS上でGithubからPullするときの設定

CI/CDの設定とかは、とりあえず忘れて単純にGithubにSSH経由で接続して、リポジトリをPullするまでの設定 ちなみに以下の環境があり、ローカルでの秘密鍵(id_rsa)と公開鍵(id_rsa.pub)がある前提。[開発マシン(Mac)] [本番サーバ] [Github]いろんなサイトを…

【Flask】HTTPS環境で、Ajaxを使用するページを開いたら、エラーが出た。

件名の通り、以下のようなエラーが出た The page at 'URL' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'URL'. This request has been blocked; the content must be served over HTTPS.原因はスラッシュ漏れ。FlaskもDjango…

【MySQL】SQLAlchemy内でMySQLの全文検索を試めしてみた

MySQLの設定は以下を参考 thoames.hatenadiary.jp 検索対象のインデックスがつけられる単語の最小長と最大長の設定 InnoDBなら「innodb_ft_min_token_size」、MyISAMなら「ft_min_word_len」で最小長を設定 InnoDBなら「innodb_ft_max_token_size」、MyISAM…

【Ruby】MacでRailsが突然動かなくなった話

2021年にまたやらかした。 thoames.hatenadiary.jp=============原因が何だったのか定かではないが、 恐らくXcode関係かbrew関係のコマンドを弄ったかが原因で Railsを起動しようとしたところ以下のようなエラーが表示された。 $ bundle exec rails s ... Lo…