ytyng.com

AWS RDS MySQLのレプリケーションが止まったので復旧

AWS RDS MySQL のレプリケーションの様子がおかしい
MyIsam テーブルがありますが、
CHECK TABLE xxxx_xxxx;
してみると
Table    Op    Msg_type    Msg_text
xxxx.xxxx_xxxx    check    error    Corrupt
Msg_text が Corrupt。このテーブルは腐ってると言われます。マスターの方は問題無し。
AWS コンソールの RDS ページを見てみると
レプリケーションが失敗している
SHOW SLAVE STATUS を見ると
{

Django CSRFトークン認証に失敗する ELB -> Apache2 -> uwsgi

元々は
AWS ELB -> Apache2 -> mod_wsgi という構成だったが、
AWS ELB -> Apache2 -> uwsgi と、Djangoサーバを uwsgi に変えたら、

ログインフォームを送信する時など、django csrf 認証に失敗するようになった。


DEBUG = True で見てみると

アクセス禁止 (403)

CSRF検証に失敗したため、リクエストは中断されました。
Help

Reason given for failure:

    Referer checking failed - https://example.com.com/some-path/ does not match any trusted origins.
    

In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure:

    Your browser is accepting cookies.
    The view function passes a request to the template's render method.
    In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL.
    If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data.

You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed.

You can customize this page using the CSRF_FAILURE_VIEW setting.



ELB で HTTPS を受け、Apache には 80 でリクエスト、uwsgi は HTTP プロトコルをリッスンしている(uwsgiプロトコルではない)

Apacheの設定は

ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/

Alias /static/ /var/django/xxxxx/staticfiles/
ProxyPass /static/ !

こんな感じ。

Django のコードを検索してみると

csrf.py

REASON_BAD_REFERER = "Referer checking failed - %s does not match any trusted origins."


こうなっていて、コードを読んで見ると CSRF_TRUSTED_ORIGINS にドメインを入れれば良いっぽい。

CSRF_TRUSTED_ORIGINS = [".example.com"] これで良い

Disqusを使ってる場合、iOS の Twitter アプリでページを表示すると外部サイトリンクに問題あるかも

ブログのコメントシステムに Disqus を使ってる場合

MySQL の 照合順序 utf8_unicode_ci はけっこう遅いのでやめとくべき

まったく定量的な話でないのですが。

Django で Shift-JIS の CSV を出力

Python 3, Django 1.9

アプリケーション"Steam.app"を開けません。のエラー

mac 10.11 El Capitan で、ダウンロードした Steam を起動しようとしたら「アプリケーション"Steam.app"を開けません。」というエラーが出て起動できなかった場合。

Django RedirectView を URLs でインラインで使って、URLパスを保持したままリダイレクトする

/url-path-before/feature/hoge/ にアクセスした人を、 /url-path-after/feature/hoge/ にリダイレクトしたい。

iOSアプリのビルド時 duplicate symbol _OBJC_CLASS_ が大量に出て焦った時

iOSアプリのビルド時 duplicate symbol _OBJC_CLASS_ が大量に出て焦った時

WebFontLoaderひな型

WebFont を使っていると、フォントが読み込まれないと文字が表示されない FOUT という現象が発生する。

MySQL InnoDBのフルテキストインデックスで、ストップワードフィルタを無効にする (in, by, is などで検索できるようにする)

経緯

MySQL5.6 の、InnoDB にバイグラムでフルテキストインデックスを作っているのですが、 TWIN という文字を検索しようとした所、

SSL証明書の有効期限を timedelta で取得

SSL証明書の有効期限を timedelta で取得

Django マネジメントコマンドの重複起動防止デコレータ

Xcode7でビルドしたら ERROR ITMS-90096: "Your binary is not optimized for iPhone 5 ..." が出た

下記記事が参考になりました。

Django TemplateView を、@cached_property を多用して書いてみる

Django に標準搭載の django.views.generic.TemplateView。

Bootstrapカルーセルの初期アクティブ項目をランダムで選択する

Bootstrap で、ヒーローエリアの大カルーセルを表示する時、初期位置をランダムで変更する方法です。

プロセスプールを使って並列処理を簡単に書く

今までは、threading.Thread を使ってオレオレスレッドプールなんかを書いてたりしましたが、Pythonに用意されてないはずがないと思って探してみたら multiprosessing.pool.Pool がそれでした。超簡単にプロセスプールが作れる。今までの俺は何だったんだ。

Python 簡易スレッドプール

multiprocessing.pool.Pool 使えばよかった orz

複雑なクエリで検索した Django モデルインスタンスを Paginator でページングする

class Content(models.Model):
    content_name = models.Charfield(...)
    group_id = models.PositiveIntegerField(...)
    volume_number = models.PositiveIntegerField(...)
    ...

典型的な Django のモデルクラスががあるとして、そのインスタンスを複雑な SQL 1発で検索したい。 結果は Web ページに表示したいが、多くの行になることが予想されるため、パジネータを表示したい。

UIWebView の、フレームサイズとビューポートサイズの関連がよくわからなくて悩む

iOS Simulator 8.4

Ubuntu Linux 14.10 に MySQL 5.6 をインストール

cd /tmp/
wget "http://dev.mysql.com/get/mysql-apt-config_0.3.5-1ubuntu14.10_all.deb"

sudo dpkg -i mysql-apt-config_0.3.5-1ubuntu14.10_all.deb
# Server -> MySQL 5.6 -> Apply

sudo apt-get update
sudo apt-cache policy mysql-server

sudo apt-get install mysql-server

(再設定: sudo dpkg-reconfigure mysql-apt-config )

最近のツイート

  • ytyng

    ytyng @ytyng

    @tekitotaro ありがとうございます! 修正します。
    6 日, 9 時間 前

  • ytyng

    ytyng @ytyng

    自分のキーボードをじっと見つめながら入力すると全然打てないことに気づいた。なんか戸惑う。
    1 週間, 5 日 前

  • ytyng

    ytyng @ytyng

    Stack Overflow に回答したらThis does not provide an answer to the question. で削除された。なんなんだろう。
    2 週間, 1 日 前