2013年5月1日水曜日

nginx Access-Control-Allow-Originでmultipleな環境に対応する太郎

Ajaxでクロスサイトスクリプティング的なことするとき、アクセス先のサーバに Access-Control-Allow-Originヘッダーを追加しないといけないみたいなんだな。 普通は、 単一サイトからのアクセスでGETだけ許可するのであれば
Access-Control-Allow-Origin http://yattarou.jp;
add_header Access-Control-Allow-Methods GET;
全部許可する場合は
Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET;
でできる。 ただ、大規模なサイトでallで許可するって何されるかわかんないし、ちょっとこわいよねってことで。 指定したサイトだけ許可する方法にしたかったのが、↓の書き方じゃだめだった。
Access-Control-Allow-Origin http://yattarou.jp http://yattarou2.jp;
add_header Access-Control-Allow-Methods GET;
なので、こう書いたらいけたよー yattarou.jpがoriginヘッダーに組み込まれていれば、Access-Control-Allow-Origin:*を付けて上げるっていう ことです。 ただし!!リクエストにorginヘッダーが入っているときのみ有効なので、注意してください。 アプリ、使用するメソッドによっては、originヘッダーが入ってない場合があるので

    server {
        listen       80;
        server_name  yattarou.jp;

        root /home/yattarou;

         location / {

         if ($http_origin ~ "^(http://yattarou.jp|http://yattarou2.jp|http://yattarou3.jp)$") {
           add_header Access-Control-Allow-Origin *;
           add_header Access-Control-Allow-Methods GET;
         }
       }

2013年1月25日金曜日

ubuntu 10.04でvlan×bonding×link aggregation太郎

てこずったのと情報がいろいろ錯綜していたので。
 とりま、ちゃんと設定できた情報メモっときます。
 作業c⌒っ゚д゚)っφ メモメモ...


#
#vlanのid が99と想定
#事前にaptでifenslaveは入れておくこと。
#

cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0 eth1

auto eth1
iface eth1 inet manual
bond-master bond0
bond-primary eth0 eth1

auto bond0
iface bond0 inet manual
bond-mode 802.3ad
bond-miimon 100
bond-slaves none

auto vlan99
iface vlan99 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
network xxx.xxx.xxx.xxx
broadcast xxx.xxx.xxx.xxx
vlan-raw-device bond0
gateway xxx.xxx.xxx.xxx




bond99でもいけるみたいなんだけど、vlanでもいけるみたいな感じだった。

2013年1月24日木曜日

openstack swift swauthの設定太郎

swauthの設定方法のめもだお(*´ω`*)
まずはproxyサーバにswauth入れる。

swiftのversionは1.7.5です。 ubuntuは10.04 LTSです。
#
#swauthをaptで持って来れるように設定
#

vim /etc/apt/sources.list.d/swauth.list

#追記
deb http://gholt.github.com/swauth/lucid lucid main

#update
apt-get update

apt-get install python-swauth swauth-doc




つづいて、proxy-server.confの編集


[pipeline:main]
pipeline = catch_errors healthcheck cache staticweb swauth proxy-server 

[app:proxy-server]
allow_account_management = true


#
#xxx.のIPはLBのインターナルIPにしました。
#

[filter:swauth]
use = egg:swauth#swauth
set log_name = swauth
super_admin_key = swauthkey
default_swift_cluster = cluster_name#http://xxx.xxx.xxx.xxx:8080/v1#http://127.0.0.1:8080/v1




つづいて、確認作業


#
#proxy 設定ファイル読み込み
#

swift-init all reload

#
#アカウント追加
#


swauth-add-user -A http://xxx.xxx.xxx.xxx:8080/auth/ -K swauthkey -a -a yattarou yattaroud yattaraouing



#
#確認してみる。下記のようにStorageURLとかがなってればok
#

swift -A http://xxx.xxx.xxx.xxx:8080/auth/v1.0 -U yattarou:yattaroud -K yattaraouing  stat -v
StorageURL: http://xxx.xxx.xxx.xxx:8080/v1/AUTH_6f760e8b-1782-4ab9-af70-c80012495824
Auth Token: AUTH_tk47aee4fa24f1411489e28301c954bc4d
   Account: AUTH_6f760e8b-1782-4ab9-af70-c80012495824
Containers: 0
   Objects: 0
     Bytes: 0
Accept-Ranges: bytes
X-Timestamp: 1359008441.84255
X-Trans-Id: tx12b86fe3b88e4ec689171f74e9e98d44
Content-Type: text/plain; charset=utf-8