2013-03-08 50 views
0

我一直在嘗試幾天,開始在aws ec2上作爲一個完整的遊戲和bash-rookie開始一個記錄不好的遊戲應用程序(幫助朋友),並最終設法啓動它;但是不能在端口8080上進行監聽,如在聲明的playShop.sh文件中那樣,而是在隨機端口(8081)上作爲8080投擲「已在使用中」 - 異常。關於aws ec2的播放框架 - HTTP端口設置

playShop.sh(具有改變端口):

須藤nohup的./start -Dconfig.file = /家庭/ EC2用戶/ prod.conf -Dhttp.port = 8081 -Dhttp.address = 127.0.0.1 &

開始

!在/ usr/bin中/ env的SH

高管的Java $ * -cp「dirname $0/lib/*「play.core.server.NettyServer dirname $0

到目前爲止好!但我如何通過網絡瀏覽器訪問它?當我打電話給公共DNS時,我遇到了一個標準的歡迎頁面。我嘗試在該端口上設置安全組設置(quicklaunch1 - >入站),並且還使用負載平衡器 - >偵聽器,但沒有任何幫助。

這似乎是漫長旅程的最後一步,任何幫助如此歡迎! 謝謝。

編輯: 這是什麼的nohup.out登錄這兩個端口:

Play server process ID is 1593 
[[37minfo[0m] play - Application started (Prod) 
Oops, cannot start the server. 
org.jboss.netty.channel.ChannelException: Failed to bind to: /127.0.0.1:8080 
    at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:298) 
    at play.core.server.NettyServer.<init>(NettyServer.scala:63) 
    at play.core.server.NettyServer$.createServer(NettyServer.scala:132) 
    at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:162) 
    at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:161) 
    at scala.Option.map(Option.scala:133) 
    at play.core.server.NettyServer$.main(NettyServer.scala:161) 
    at play.core.server.NettyServer.main(NettyServer.scala) 
Caused by: java.net.BindException: Address already in use 
    at sun.nio.ch.Net.bind(Native Method) 
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:137) 
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:77) 
    at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.bind(NioServerSocketPipelineSink.java:138) 
    at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleServerSocket(NioServerSocketPipelineSink.java:90) 
    at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:64) 
    at org.jboss.netty.channel.Channels.bind(Channels.java:569) 
    at org.jboss.netty.channel.AbstractChannel.bind(AbstractChannel.java:187) 
    at org.jboss.netty.bootstrap.ServerBootstrap$Binder.channelOpen(ServerBootstrap.java:343) 
    at org.jboss.netty.channel.Channels.fireChannelOpen(Channels.java:170) 
    at org.jboss.netty.channel.socket.nio.NioServerSocketChannel.<init>(NioServerSocketChannel.java:80) 
    at org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel(NioServerSocketChannelFactory.java:158) 
    at org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel(NioServerSocketChannelFactory.java:86) 
    at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:277) 
    ... 7 more 
Play server process ID is 1650 
[[37minfo[0m] play - Application started (Prod) 
[[37minfo[0m] play - Listening for HTTP on port 8081.. 

+0

你使用播放1.x或播放2.x? – eSniff 2013-03-08 22:34:50

+0

是玩2.x我認爲(2012年10月版?);但不是最新的 – 2013-03-08 22:37:25

回答

0

到目前爲止好!但我如何通過網絡瀏覽器訪問它? 當我打電話給公共DNS我遇到一個標準的歡迎頁面。我試圖 設置該端口上的安全組設置(quicklaunch1 - >入站) ,並且也使用負載均衡器 - >監聽器進行播放,但 沒有幫助。

當你點擊一個域名的web瀏覽器,默認情況下它會嘗試連接到端口80。爲了解決這個問題,你要訪問它想:

http://myserver.com:8081/ 

難哪上用戶。爲了解決這個問題,推薦的路線是使用代理服務器來處理來自偵聽端口80的客戶端的標準請求,並根據需要將請求轉發到應用服務器(播放服務器)。我通常爲此推薦nginx,並且play framework主頁有一個basic guide for setting it up。在你的情況下,它會是這樣的:

http { 

    proxy_buffering off; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Scheme $scheme; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 

    upstream my-backend { 
    server 127.0.0.1:8081; 
    } 

    server { 
    server_name www.mysite.com mysite.com; 
    rewrite ^(.*) https://www.mysite.com$1 permanent; 
    } 

    server { 
    listen    443; 
    ssl     on; 
    ssl_certificate  /etc/ssl/certs/my_ssl.crt; 
    ssl_certificate_key /etc/ssl/private/my_ssl.key; 
    keepalive_timeout 70; 
    server_name www.mysite.com; 
    location/{ 
     proxy_pass http://my-backend; 
    } 
    } 
}