ECのウェブ担当者のメモ

ECサイトを運営管理している、WEB担当プログラマのメモ

スポンサーリンク

f:id:jun9632:20160808150321p:plain

Nginxで特定のlocationだけベーシック認証を除外する方法です 基本的には、全体に的にベーシック認証をかけて、特定のディレクトリ(ロケーション)だけベーシック認証なしでアクセスできるように 設定する方法です。

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;


location ^~ /none_basic/ {
         satisfy any;
         allow   all;
}

以上

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

nginx実践入門 (WEB+DB PRESS plus)

nginx実践入門 (WEB+DB PRESS plus)

Amazon RDS(Postgres)からdumpをとってrestoreする方法

f:id:jun9632:20160804171552p:plain

Amazon PostgresのRDSから dumpを取得して、restoreする方法です。

RDSに限ったことでは無いかもしれませんが、 今回、RDSのデータを元にlocalのDBを作りたかったく その作業メモです。

基本は以下の通りです。

pg_dump -Fc -v -h [endpoint of instance] -U [master username] [database] > [database].dump
createdb [new database name]
pg_restore -c -h [endpoint of instance] -U [master username] -d [new database name] [database].dump

dbに接続できる状態で行います。

createdb [new database name]

の部分は、とりあえずpg_restoreの -dで指定する DBを作ればよいと思います。

create database [new database name];

DBができた状態で、pg_restoreを実行してください

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

Rubyで日付の文字列からDate型Objectに変換する方法

f:id:jun9632:20160804110230p:plain

タイトルの通り日付の文字列からDate型Objectに変換する方法です。

そんなときは、Date.parseが便利で

Date.parse('2017-01-01')

とすると、変換してくれます。

 関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

たのしいRuby 第5版

たのしいRuby 第5版

Postgresのシーケンス(sequence)の番号をupdateする方法

f:id:jun9632:20160726143558p:plain

タイトルの通り PostgreSqlでシーケンスの番号をupdateする方法です。

下記のクエリーを実行

SELECT SETVAL ('シーケンス名', '番号');

以上です。

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

ディレクトリ内のファイル容量をチェックする方法

f:id:jun9632:20160711103957p:plain

dfコマンドを叩いて以下のような結果が出た時に、 実際に何処のディレクトリが増えてるのと思うことがあります。

ファイルシス   1K-ブロック     使用   使用可 使用% マウント位置
/dev/xvda1        30830568 16642096 14088224   55% /

そんなときは、 du コマンド

ディレクトリ内のファイル容量を表示してくれます。

$ sudo du -h --max-depth=1 /

以下のように、ファイルサイズとディレクトリ名が表示されるので

1.2G /usr
7.0M    /bin
14G /var
・・・

どんどん深掘りしていくと辿りつけると思います。

$ sudo du -h --max-depth=1 /var

もっと、一発でバシッとたどり着ける方法がありそうなきもしますが、、、

参考サイト

Linuxコマンド集 - 【 du 】 ディレクトリ内のファイル容量を表示する:ITpro

関連記事

新しいLinuxの教科書

新しいLinuxの教科書

Rails + Nginx環境で強制的にURLの最後に / を付ける方法

f:id:jun9632:20160708174653p:plain

表題の通り、Rails + Nginx環境で強制的にURLの最後に / を付ける方法です。

そもそもなぜ付ける必要があるのか?

そうです。Google大先生に怒られたことがきっかけです。

Search ConsoleのHTMLの改善の項目で、重複するメタデータとして

/item/12345/
/item/12345

こんな感じのURLが重複してるよ!と言われたんです。

そんなぁ、、、と思いつつも、最後に/を付ける方向で直しました。

対処方法

対処場所としては、RailsとNginxで対処しました。 最悪Nginxだけやっとけば、統一はされますが、一応Rails側でも対応しています。

Rails

application.rbに以下を追加します。

config.action_controller.default_url_options = { :trailing_slash => true }

これで、items_path とかroutes経由でのURLの後ろに「/」がついてくれます。

ただしこれだと、「/item/12345」を直接入力されてしまうと、「/item/12345」のままになります。

Nginx

なので、Nginx側にも以下の様にrewiteを入れて、強制的に最後に「/」を付けます。

rewrite ^(.*[^/])$ $1/ permanent;

これで、スラッシュアリに統一してくれます。

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

nginx実践入門 (WEB+DB PRESS plus)

nginx実践入門 (WEB+DB PRESS plus)

Rails4・Rails5 で現在のURLを取得する。

f:id:jun9632:20170709140250p:plain

RailsのViewで現在のURLを取得する方法です。 すぐ忘れてしまうので自分の備忘録。

基本的には、ユーザのヘッダー情報や環境変数を取得することができる

request

を使用します。

http://www.example.com/にアクセスした場合。

url = request.url
p url

すると、結果は

http://www.example.com/

pathを使うと

path = request.path
p path

結果は、

/

となります。

URLパラメータがついていた場合

http://www.example.com/?val=123

に対して、

url = request.url
p url

すると、結果は

http://www.example.com/?val=123

pathを使うと

path = request.path
p path

結果は、

/

となります。

urlメソッドは、アクセスしているURLをすべてを返すのに対して、 pathメソッドはURLパラメータやホスト部分は結果として返してくれません。

ホスト以下の結果が欲しい場合は、

fullpathを使います。

path = request.path
p path

結果は、

/?val=123

となります

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5 超入門

Ruby on Rails 5 超入門