2013-12-22 16 views
7

私はjettyのプロキシとしてnginxを設定しようとしています。私はthis answerで説明されているように何かしたいですが、Jetty not ringのために。nginxをjettyのプロキシとして設定するにはどうすればよいですか?

私は.warを作成したと私は~/jetty/jetty-dist/webapps/web_test-0.1.0-SNAPSHOT-standalone.war

セイでそれを置いて、私は、IPアドレス198.51.100.0とexample.comドメインを使用したいです。

私はファイルに/etc/nginx/sites-available/defaultもコピーしましたが、同じディレクトリにあります。

私の場合、nginxをjettyのプロキシとして設定できますか?私はこれを行う方法についてオンラインで多くの参照があることを知っているが、それらはすべて異なっていると私は混乱している。

nginxではどのような変更を行う必要がありますか? jetty.xmlで何を変更する必要がありますか?他の変更を加える必要がありますか?私のアプリはexample.com/index.htmlで提供されますか? nginxのの

現在の状態は以下にコピーされます。私はすべての桟橋を使用する必要がある場合、私は思っていた

upstream jetty { 
    server 127.0.0.1:8080 fail_timeout=0 
} 

server { 
     listen 80 default_server; 
     #listen [::]:80 default_server ipv6only=on; 

     root /usr/share/nginx/html; 
     index index.html index.htm; 

     server_name localhost; 

     location/{ 
       proxy_pass http://jetty 

       try_files $uri $uri/ =404; 
     } 

EDIT。 this setupで彼はちょうど超簡単に見えるリングを使用していますか?桟橋を使って得られるものは何ですか?


答えて

9

Javaサーバーで動作するようにnginxを構成する方法。この例では、Jettyが使用されています。

編集/etc/nginx/sites-available/hostname

server { 
    listen  80; 
    server_name hostname.com; 

    location/{ 
    proxy_pass  http://localhost:8080; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    } 
} 

ポート8080への外部アクセスを無効にすることを考えてみましょう:

/sbin/iptables -A INPUT -p tcp -i eth0 --dport 8080 -j REJECT --reject-with tcp-reset 

例の桟橋の設定(jetty.xml)は似ているかもしれません:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd"> 

<!-- 
| http://eclipse.org/jetty/documentation/current/configuring-connectors.html 
+--> 
<Configure id="Server" class="org.eclipse.jetty.server.Server"> 
    <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> 
    <Set name="secureScheme">https</Set> 
    <Set name="securePort"><Property name="jetty.tls.port" default="8443" /></Set> 
    <Set name="outputBufferSize">65536</Set> 
    <Set name="requestHeaderSize">8192</Set> 
    <Set name="responseHeaderSize">8192</Set> 
    </New> 
    <Call name="addConnector"> 
    <Arg> 
     <New class="org.eclipse.jetty.server.ServerConnector"> 
     <Arg name="server"><Ref refid="Server" /></Arg> 
     <Arg name="acceptors" type="int"><Property name="http.acceptors" default="-1"/></Arg> 
     <Arg name="selectors" type="int"><Property name="http.selectors" default="-1"/></Arg> 
     <Arg name="factories"> 
      <Array type="org.eclipse.jetty.server.ConnectionFactory"> 
      <Item> 
       <New class="org.eclipse.jetty.server.HttpConnectionFactory"> 
       <Arg name="config"><Ref refid="httpConfig" /></Arg> 
       </New> 
      </Item> 
      </Array> 
     </Arg> 
     <Set name="host"><Property name="jetty.host" default="localhost" /></Set> 
     <Set name="port"><Property name="jetty.port" default="8080" /></Set> 
     </New> 
    </Arg> 
    </Call> 
</Configure> 

これは桟橋が発生します聞くにはlocalhost:8080とnginxは、リクエストをdomain.com:80からJettyサーバーにリダイレクトします。あなたは桟橋9.0 /contexts/myapp.xml $ {jetty.home}を持っていた場合は桟橋6で

+0

、突堤9.1で /webapps/myapp.xml $ {} jetty.homeに移動+、それを $ {jetty.base} /webapps/myapp.xmlに移動します –