{"id":5507,"date":"2023-02-15T15:41:48","date_gmt":"2023-02-15T10:11:48","guid":{"rendered":"https:\/\/trysiteprice.com\/blog\/?p=5507"},"modified":"2023-02-15T15:41:48","modified_gmt":"2023-02-15T10:11:48","slug":"mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer","status":"publish","type":"post","link":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/","title":{"rendered":"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer"},"content":{"rendered":"<p>When you use a reverse proxy or load balancer with Lighttpd, the IP address of the client may be hidden or obscured in the server logs. To log the real IP address of the client, you can use the <code>mod_extforward<\/code> module in Lighttpd.<\/p>\n<p>Here&#8217;s how to configure <code>mod_extforward<\/code> to log the real IP address of the client:<\/p>\n<ol>\n<li>Install the <code>mod_extforward<\/code> module. On Debian or Ubuntu, you can use the following command:\n<div class=\"bg-black mb-4 rounded-md\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans\"><\/div>\n<div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs language-vbnet\">sudo apt-<span class=\"hljs-keyword\">get<\/span> install lighttpd-<span class=\"hljs-built_in\">mod<\/span>-extforward<br \/>\n<\/code><\/div>\n<\/div>\n<\/li>\n<li>Configure <code>mod_extforward<\/code> by adding the following lines to your Lighttpd configuration file (<code>\/etc\/lighttpd\/lighttpd.conf<\/code> by default):\n<div class=\"bg-black mb-4 rounded-md\">\n<div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs language-python\">server.modules += ( <span class=\"hljs-string\">\"mod_extforward\"<\/span> )<br \/>\nextforward.forwarder = ( <span class=\"hljs-string\">\"192.168.1.1\"<\/span> )<br \/>\nextforward.headers = ( <span class=\"hljs-string\">\"X-Forwarded-For\"<\/span> )<br \/>\n<\/code><\/div>\n<\/div>\n<p>Replace <code>192.168.1.1<\/code> with the IP address of your reverse proxy or load balancer. The <code>extforward.headers<\/code> option specifies which header to use for the real client IP address. In this example, we&#8217;re using the <code>X-Forwarded-For<\/code> header.<\/li>\n<li>Configure your web application to use the <code>X-Forwarded-For<\/code> header. This step will vary depending on the application. Check the documentation for your application to find out how to enable support for the <code>X-Forwarded-For<\/code> header.\n<p>In PHP, you can access the <code>X-Forwarded-For<\/code> header using the <code>$_SERVER<\/code> superglobal array:<\/p>\n<div class=\"bg-black mb-4 rounded-md\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans\"><\/div>\n<div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs language-bash\"><span class=\"hljs-variable\">$client_ip<\/span> = <span class=\"hljs-variable\">$_SERVER<\/span>[<span class=\"hljs-string\">'HTTP_X_FORWARDED_FOR'<\/span>];<br \/>\n<\/code><\/div>\n<\/div>\n<\/li>\n<li>Restart the Lighttpd server:\n<div class=\"bg-black mb-4 rounded-md\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans\"><\/div>\n<div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs\">sudo service lighttpd restart<br \/>\n<\/code><\/div>\n<\/div>\n<p>This will apply the changes you made to the Lighttpd configuration file.<\/li>\n<\/ol>\n<p>With <code>mod_extforward<\/code> configured, the real IP address of the client will be logged in the server logs. You can test this by checking the logs and verifying that the IP address matches the client&#8217;s actual IP address.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you use a reverse proxy or load balancer with Lighttpd, the IP address of the client may be hidden or obscured in the server logs. To log the real IP address of the client, you can use the mod_extforward module in Lighttpd. Here&#8217;s how to configure mod_extforward to log the real IP address of &#8230; <a title=\"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer\" class=\"read-more\" href=\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/\" aria-label=\"Read more about mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5507","post","type-post","status-publish","format-standard","hentry","category-best-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer - TrySitePrice<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer - TrySitePrice\" \/>\n<meta property=\"og:description\" content=\"When you use a reverse proxy or load balancer with Lighttpd, the IP address of the client may be hidden or obscured in the server logs. To log the real IP address of the client, you can use the mod_extforward module in Lighttpd. Here&#8217;s how to configure mod_extforward to log the real IP address of ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/\" \/>\n<meta property=\"og:site_name\" content=\"TrySitePrice\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-15T10:11:48+00:00\" \/>\n<meta name=\"author\" content=\"Rahul Sahu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/\"},\"author\":{\"name\":\"Rahul Sahu\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/358e04eeea4281deacad2f30c58e67f4\"},\"headline\":\"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer\",\"datePublished\":\"2023-02-15T10:11:48+00:00\",\"dateModified\":\"2023-02-15T10:11:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/\"},\"wordCount\":220,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/#organization\"},\"articleSection\":[\"Best\/Tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/\",\"url\":\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/\",\"name\":\"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer - TrySitePrice\",\"isPartOf\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/#website\"},\"datePublished\":\"2023-02-15T10:11:48+00:00\",\"dateModified\":\"2023-02-15T10:11:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/trysiteprice.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#website\",\"url\":\"https:\/\/trysiteprice.com\/blog\/\",\"name\":\"TrySitePrice\",\"description\":\"Free Website Value Calculator Tool\",\"publisher\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/trysiteprice.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#organization\",\"name\":\"TrySitePrice\",\"url\":\"https:\/\/trysiteprice.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/trysiteprice.com\/blog\/wp-content\/uploads\/2021\/12\/cropped-trysiteprice-logo.png\",\"contentUrl\":\"https:\/\/trysiteprice.com\/blog\/wp-content\/uploads\/2021\/12\/cropped-trysiteprice-logo.png\",\"width\":395,\"height\":268,\"caption\":\"TrySitePrice\"},\"image\":{\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/358e04eeea4281deacad2f30c58e67f4\",\"name\":\"Rahul Sahu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/51f0f95f7b95665f62baed2211572165?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/51f0f95f7b95665f62baed2211572165?s=96&d=mm&r=g\",\"caption\":\"Rahul Sahu\"},\"sameAs\":[\"https:\/\/trysiteprice.com\/blog\"],\"url\":\"https:\/\/trysiteprice.com\/blog\/author\/rsahu4242_trysiteprice\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer - TrySitePrice","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/","og_locale":"en_US","og_type":"article","og_title":"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer - TrySitePrice","og_description":"When you use a reverse proxy or load balancer with Lighttpd, the IP address of the client may be hidden or obscured in the server logs. To log the real IP address of the client, you can use the mod_extforward module in Lighttpd. Here&#8217;s how to configure mod_extforward to log the real IP address of ... Read more","og_url":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/","og_site_name":"TrySitePrice","article_published_time":"2023-02-15T10:11:48+00:00","author":"Rahul Sahu","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/#article","isPartOf":{"@id":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/"},"author":{"name":"Rahul Sahu","@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/358e04eeea4281deacad2f30c58e67f4"},"headline":"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer","datePublished":"2023-02-15T10:11:48+00:00","dateModified":"2023-02-15T10:11:48+00:00","mainEntityOfPage":{"@id":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/"},"wordCount":220,"commentCount":0,"publisher":{"@id":"https:\/\/trysiteprice.com\/blog\/#organization"},"articleSection":["Best\/Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/","url":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/","name":"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer - TrySitePrice","isPartOf":{"@id":"https:\/\/trysiteprice.com\/blog\/#website"},"datePublished":"2023-02-15T10:11:48+00:00","dateModified":"2023-02-15T10:11:48+00:00","breadcrumb":{"@id":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/trysiteprice.com\/blog\/mod_extforward-lighttpd-log-clients-real-ip-behind-reverse-proxy-load-balancer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/trysiteprice.com\/blog\/"},{"@type":"ListItem","position":2,"name":"mod_extforward: Lighttpd Log Clients Real IP Behind Reverse Proxy \/ Load Balancer"}]},{"@type":"WebSite","@id":"https:\/\/trysiteprice.com\/blog\/#website","url":"https:\/\/trysiteprice.com\/blog\/","name":"TrySitePrice","description":"Free Website Value Calculator Tool","publisher":{"@id":"https:\/\/trysiteprice.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/trysiteprice.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/trysiteprice.com\/blog\/#organization","name":"TrySitePrice","url":"https:\/\/trysiteprice.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/trysiteprice.com\/blog\/wp-content\/uploads\/2021\/12\/cropped-trysiteprice-logo.png","contentUrl":"https:\/\/trysiteprice.com\/blog\/wp-content\/uploads\/2021\/12\/cropped-trysiteprice-logo.png","width":395,"height":268,"caption":"TrySitePrice"},"image":{"@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/358e04eeea4281deacad2f30c58e67f4","name":"Rahul Sahu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/trysiteprice.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/51f0f95f7b95665f62baed2211572165?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/51f0f95f7b95665f62baed2211572165?s=96&d=mm&r=g","caption":"Rahul Sahu"},"sameAs":["https:\/\/trysiteprice.com\/blog"],"url":"https:\/\/trysiteprice.com\/blog\/author\/rsahu4242_trysiteprice\/"}]}},"_links":{"self":[{"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/posts\/5507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/comments?post=5507"}],"version-history":[{"count":1,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/posts\/5507\/revisions"}],"predecessor-version":[{"id":5510,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/posts\/5507\/revisions\/5510"}],"wp:attachment":[{"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/media?parent=5507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/categories?post=5507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trysiteprice.com\/blog\/wp-json\/wp\/v2\/tags?post=5507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}