0

EC2 インスタンスで jetty hightide 8.1 サーバーを構成しました。私のjetty.xmlファイルは次のとおりです

<Configure id="Server" class="org.eclipse.jetty.server.Server">

    <!-- =========================================================== -->
    <!-- Server Thread Pool                                          -->
    <!-- =========================================================== -->
    <Set name="ThreadPool">
      <!-- Default queued blocking threadpool -->
      <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
        <Set name="minThreads">10</Set>
        <Set name="maxThreads">200</Set>
        <Set name="detailedDump">false</Set>
      </New>
    </Set>

    <!-- =========================================================== -->
    <!-- Set connectors                                              -->
    <!-- =========================================================== -->

    <Call name="addConnector">
      <Arg>
          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <Set name="host"><Property name="jetty.host" default="0.0.0.0"/></Set>
            <Set name="port"><Property name="jetty.port" default="80"/></Set>
            <Set name="maxIdleTime">300000</Set>
            <Set name="Acceptors">2</Set>
            <Set name="statsOn">false</Set>
            <Set name="confidentialPort">8443</Set>
            <Set name="lowResourcesConnections">20000</Set>
            <Set name="lowResourcesMaxIdleTime">5000</Set>
          </New>
      </Arg>
    </Call>

    <!-- =========================================================== -->
    <!-- Set handler Collection Structure                            -->
    <!-- =========================================================== -->
    <Set name="handler">
      <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
        <Set name="handlers">
         <Array type="org.eclipse.jetty.server.Handler">
           <Item>
             <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
           </Item>
           <Item>
             <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
           </Item>
                   <Item>
                         <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
                   </Item>
         </Array>
        </Set>
      </New>
    </Set>

        <Call name="addBean">
      <Arg>
        <New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
          <Set name="contexts">
            <Ref id="Contexts" />
          </Set>
          <Call name="setContextAttribute">
            <Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg>
            <Arg>.*/servlet-api-[^/]*\.jar$</Arg>
          </Call>


          <!-- Add a customize step to the deployment lifecycle -->
          <!-- uncomment and replace DebugBinding with your extended AppLifeCycle.Binding class
          <Call name="insertLifeCycleNode">
            <Arg>deployed</Arg>
            <Arg>starting</Arg>
            <Arg>customise</Arg>
          </Call>
          <Call name="addLifeCycleBinding">
            <Arg>
              <New class="org.eclipse.jetty.deploy.bindings.DebugBinding">
                <Arg>customise</Arg>
              </New>
            </Arg>
          </Call>
          -->

        </New>
      </Arg>
    </Call>

        <Ref id="DeploymentManager">
          <Call name="addAppProvider">
                <Arg>
                  <New class="org.eclipse.jetty.deploy.providers.ContextProvider">
                        <Set name="monitoredDirName"><Property name="jetty.home" default="." />/contexts</Set>
                        <Set name="scanInterval">1</Set>
                  </New>
                </Arg>
          </Call>
        </Ref>

        <Ref id="RequestLog">
          <Set name="requestLog">
                <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
                  <Arg><SystemProperty name="jetty.logs" default="./logs"/>/yyyy_mm_dd.tutorial.log</Arg>
                  <Set name="retainDays">90</Set>
                  <Set name="append">true</Set>
                  <Set name="extended">false</Set>
                  <Set name="LogTimeZone">GMT</Set>
                </New>
          </Set>
        </Ref>
    <!-- =========================================================== -->
    <!-- extra options                                               -->
    <!-- =========================================================== -->
    <Set name="stopAtShutdown">true</Set>
    <Set name="sendServerVersion">true</Set>
    <Set name="sendDateHeader">true</Set>
    <Set name="gracefulShutdown">1000</Set>
    <Set name="dumpAfterStart">false</Set>
    <Set name="dumpBeforeStop">false</Set>

</Configure>

そして /contexts フォルダーに、次のようにファイル mydomain.xml を作成しました

<Configure class="org.eclipse.jetty.webapp.WebAppContext">


  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!-- Required minimal context configuration :                        -->
  <!--  + contextPath                                                  -->
  <!--  + war OR resourceBase                                          -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <Set name="contextPath">/</Set>
  <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/webapps/sampleapp/</Set>

  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!-- Optional context configuration                                  -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <Set name="extractWAR">true</Set>
  <Set name="copyWebDir">false</Set>

  <!-- virtual hosts -->
  <Set name="virtualHosts">
    <Array type="String">
      <Item>www.mydomain.com</Item>
      <Item>localhost</Item>
      <Item>127.0.0.1</Item>
    </Array>
  </Set>
  <!-- Virtual Hosts-->

  <!-- disable cookies
  <Get name="sessionHandler">
     <Get name="sessionManager">
        <Set name="usingCookies" type="boolean">false</Set>
     </Get>
  </Get>
  -->

  <!-- Non standard error page mapping -->
  <!--
  <Get name="errorHandler">
    <Call name="addErrorPage">
      <Arg type="int">500</Arg>
      <Arg type="int">599</Arg>
      <Arg type="String">/dump/errorCodeRangeMapping</Arg>
    </Call>
  </Get>
  -->

  <!-- Add context specific logger
  <Set name="handler">
    <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
      <Set name="requestLog">
        <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
          <Set name="filename"><Property name="jetty.logs" default="./logs"/>/test-yyyy_mm_dd.request.log</Set>
          <Set name="filenameDateFormat">yyyy_MM_dd</Set>
          <Set name="append">true</Set>
          <Set name="LogTimeZone">GMT</Set>
        </New>
      </Set>
    </New>
  </Set>
  -->

</Configure>

ec2 インスタンスから wget を実行すると、適切な index.html ページが表示されます。しかし、外部から実行したり、ブラウザから www.mydomain.com にアクセスしたりすると、リクエストがタイムアウトになります。http ポート 80 をリッスンするように jetty を設定しましたが、外部からの要求が jetty に来ません。AWS コンソールで提供されたパブリック dns を使用して、ドメイン レジストラーに CNAME レコードを作成しました。IP と dns は正しく解決されますが、jetty は要求を受け取りません。構成の問題を理解できません

4

1 に答える 1

0

申し訳ありませんが、すべての構成は正しいです。実際には、tcp ポート 80 は aws コンソールから開いていませんでした。私はそれを実現するために 2 時間を無駄にしました。

于 2012-06-30T19:17:04.207 に答える