<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Clojure Q&amp;A - Recent questions tagged nginx</title>
<link>https://ask.clojure.org/index.php/tag/nginx</link>
<description></description>
<item>
<title>Problem in production when removing wrap-reload</title>
<link>https://ask.clojure.org/index.php/9262/problem-in-production-when-removing-wrap-reload</link>
<description>&lt;p&gt;I'm setting up a service that returns a JSON, thanks to Ring, Compojure and Jetty. The problem I have is when I want to use Nginx as a reverse proxy. If I use the following handlers it doesn't work.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(def wrapped-handler
  ;; Handler middlewares
  (-&amp;gt; all-routes
      (wrap-defaults (assoc-in site-defaults [:security :anti-forgery] false))
      wrap-params
      wrap-session
      ))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The message I get back is&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;java.lang.NullPointerException
        at ring.adapter.jetty$proxy_handler$fn__6990.invoke(jetty.clj:26)
        at ring.adapter.jetty.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.Server.handle(Server.java:503)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
        at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
        at java.base/java.lang.Thread.run(Thread.java:834)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But if I add wrap-reload everything goes right.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(def wrapped-handler
  ;; Handler middlewares
  (-&amp;gt; all-routes
      (wrap-defaults (assoc-in site-defaults [:security :anti-forgery] false))
      wrap-params
      wrap-session
      (#(if (config :debug) (wrap-reload %)))
      ))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;My setup with Nginx is as follows.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;server {        

        server_name domain.com;

        location / {
            proxy_pass http://localhost:9000/;
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_redirect  off;
        }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Is it safe to leave wrap-reload in production? &lt;br&gt;
What have I left behind?&lt;/p&gt;
&lt;p&gt;Thank you all in advance.&lt;/p&gt;
</description>
<category>Libs</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/9262/problem-in-production-when-removing-wrap-reload</guid>
<pubDate>Sat, 25 Apr 2020 16:47:42 +0000</pubDate>
</item>
</channel>
</rss>