5640


ブラウザのクロスドメインを回避するために、 [YQL](https://developer.yahoo.com/yql/) や
[AAO](http://allow-any-origin.appspot.com/) や
[GAE](https://cloud.google.com/appengine/) でプロキシサーバーを作って回避していたのです。
しかし、以上のサーバーは海外のIPなので[一部のサイト](http://www.anitube.se/)にアクセスできません。

そこで、国内の IP
で自分でサーバーを作りたいのですが、やり方がいまいちよくわかりません。僕が今使っているプロバイダは[ここ](http://www.tamashima.tv/add/internet/charge.html)なのですがDHCPらしく動的にIPが変わるのではないかと思いまず何からしたらいいのかよくわかりません。まだ未成年でクレジットカードが持てず
Azure や AWS や Heroku などは使えません。

使える言語は C, C++, C#, Java, Python, Perl, Ruby, PHP, JS, Scala, Go, UWSC
ぐらいしか使えません。 出来れば、 RaspberryPi で Python を使って低消費電力で運用できたらなぁと思っております。

やりたい事は、クロスドメインで `XMLHttpRequest` などで [Anitube](http://www.anitube.se/)
のレスポンスを取得したいのですが、まず何をしたらいいのかご教授いただけると幸いです。

＜追記1＞  
[DEMO](http://anime-japan.appspot.com/?url=http://www.anitube.se/)  
コードとしては以下のような感じにしたいのですが

[code]

    import webapp2
    from google.appengine.api import urlfetch
    
    class MainHandler(webapp2.RequestHandler):
        def get(self):
            #パラメータのurlを取得
            url = self.request.get('url')
            #getでリソースの取得
            res = urlfetch.fetch(url)
            #text/htmlを出力
            self.response.write(res.content)
    
    app = webapp2.WSGIApplication([
        ('/', MainHandler)
    ], debug=True)
    
[/code]


CC BY-SA 3.0
2015-01-30T10:53:53.460
5623
2015-01-31T00:57:15.393
2015-01-30T12:49:25.290
440
5563
question
xss
プログラミング初心者がサーバーを作るにはどうしたらいいですか？


Heroku はクレジットカードを明示しなくても無料範囲内でアプリケーションを作れます。  
以下、私が運用している物です。

  * <http://mruby.herokuapp.com/>  
[mruby](https://github.com/mruby/mruby) という ruby
の組み込み系実装を使ってWebサーバをheroku上で稼働させています。  
ソースは <https://github.com/mattn/mruby.herokuapp.com> にあります。

  * <http://osusume.herokuapp.com/>  
ruby の sinatra を使って、heroku の postgresql
と連携しながらチャットサービス[lingr](http://lingr.com)内で動作するbotを稼働させています。  
ソースは <https://github.com/akechi/osusume-lingrbot> にあります。

  * <http://vim-jp.herokuapp.com/>  
golang と heroku の postgresql を使って <http://vim-jp.org/> 内の動的コンテンツや上記 lingr の
vim 部屋にいる bot を稼働させています。  
ソースは <https://github.com/mattn/vim-jp.herokuapp.com> にあります。

  * <http://golang.herokuapp.com/>  
同じく lingr の golang 部屋にいる bot を稼働させています。  
<https://github.com/mattn/golang_herokubot>

他にも、[appfog](https://www.appfog.com/) も無料(クレカ提示なし)で使えます。  
以上、ご参考までに。

**追記**

heroku は herokupack という物を使う事で他にも色んな言語でアプリケーションを作る事が出来ます。  
以下は上記 appfog の java で clojure アプリケーションを書いた時の記事です。

<http://mattn.kaoriya.net/software/lang/clojure/20130215211135.htm>

個人的な意見ですが、ruby を覚えて sinatra でアプリケーションを書くのが簡単だと思います。  
※やりたい内容によっては sinatra では出来ない場合もあります。


CC BY-SA 3.0
2015-01-30T12:39:49.250
5629
2015-01-30T13:13:52.603
2015-01-30T13:13:52.603
440
440
5623
answer


サーバというよりも、サービスを目的とされているようですね。  
Webアプリケーションの形でツールを作ることが目的なら、Herokuなどの無料で使えるPaaSサービスを利用するのが近道だと思います。  
以下は回り道をしたい場合のお話です。  
自宅でサーバを構築するのに固定IPアドレスを購入する必要はありません。[ダイナミックDNS](http://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%83%8A%E3%83%9F%E3%83%83%E3%82%AF%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#.E5.80.8B.E4.BA.BA.E5.90.91.E3.81.91.E5.B8.B8.E6.99.82.E6.8E.A5.E7.B6.9A.E5.9B.9E.E7.B7.9A.E3.81.AB.E3.81.8A.E3.81.91.E3.82.8B.E3.83.80.E3.82.A4.E3.83.8A.E3.83.9F.E3.83.83.E3.82.AFDNS)という、サーバのIPが変わる度に追跡してドメイン登録を更新できるサービスがあります。これを利用すれば普通のURLでサーバを公開できます。日本でも無料でサービスを行っているところがいくつかあります。  
LAN外にサーバを公開する場合は、ルータの設定を調整して80番ポートを開放する必要があります。ポートの遮断を解除できないプロバイダもあるようですが、Japanishさんのお使いの[プロバイダのサービス表](http://www.tamashima.tv/add/internet/charge.html)を見るに解除できる望みはあると思います。


CC BY-SA 3.0
2015-01-30T18:33:02.820
5640
2015-01-30T18:38:03.783
2015-01-30T18:38:03.783
5910
5910
5623
answer


国内で、ということなので[GehirnRS2 |
ゲヒルンサービスサイト](http://www.gehirn.jp/rs2.html)というレンタルサーバーはどうでしょうか。無料ではありませんが、月額300円＋税と安価にもかかわらずターミナル等からのリモートログインが可能です。

管理者権限はもらえませんが、`rs2`コマンドという独自コマンドを使うことで、ある程度のフレームワークは簡単に導入することができます。  
最初から`screen`が導入されていたり、各種設定ファイル(いわゆる`dotfiles`）がコメント付きでチューニングされていたりとちょっと癖があるかもしれません（便利かとは思います）

支払いはクレジットカードを持っていなくても可能です。

* * *

自宅鯖を検討されるのでしたら、@snipsnipsnip さんのいうようにDDNSを検討されると良いでしょう。尚、`Raspberry
pi`はちょっとしたWebサーバには良いかもしれませんが、永続的に使おうとするとSDカードまわりのトラブル(データが飛ぶなど)に巻き込まれることがありますので、ご注意ください。


CC BY-SA 3.0
2015-01-31T00:18:01.177
5645
2015-01-31T00:57:15.393
2015-01-31T00:57:15.393
3313
3313
5623
answer