How do I configure nginx as proxy to jetty? How do I configure nginx as proxy to jetty? nginx nginx

How do I configure nginx as proxy to jetty?


How to configure nginx to work with a java server. In the example Jetty is used.

Edit /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;  }}

Consider disabling external access to port 8080:

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

An example Jetty configuration (jetty.xml) might resemble:

<?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>

This will cause Jetty to listen on localhost:8080 and nginx to redirect requests from domain.com:80 to the Jetty server.