PageSourceSearch

https://owncast.online/assets/js/8ed61bd0.09885fbb.js

js owncast.online collected 2026-10-02 06:25:30 UTC 3,555 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkowncast_website=self.webpackChunkowncast_website||[]).push([["38270"],{65977(e,t,s){s.r(t),s.d(t,{metadata:()=>i,default:()=>a,frontMatter:()=>r,contentTitle:()=>l,toc:()=>d,assets:()=>p});var i=JSON.parse('{"id":"sslproxies/lighttpd","title":"lighttpd","description":"lighttpd is a lightweight option for SSL proxying.","source":"@site/docs/sslproxies/lighttpd.md","sourceDirName":"sslproxies","slug":"/sslproxies/lighttpd","permalink":"/docs/sslproxies/lighttpd","draft":false,"unlisted":false,"editUrl":"https://github.com/owncast/owncast.github.io/edit/master/docs/sslproxies/lighttpd.md","tags":[],"version":"current","sidebarPosition":80,"frontMatter":{"title":"lighttpd","description":"lighttpd is a lightweight option for SSL proxying.","sidebar_position":80},"sidebar":"docs","previous":{"title":"HAProxy","permalink":"/docs/sslproxies/haproxy"},"next":{"title":"NGINX","permalink":"/docs/sslproxies/nginx"}}'),n=s(74848),o=s(28453);let r={title:"lighttpd",description:"lighttpd is a lightweight option for SSL proxying.",sidebar_position:80},l,p={},d=[{value:"SSL",id:"ssl",level:2},{value:"Reverse Proxy",id:"reverse-proxy",level:2}];function c(e){let t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"https://www.lighttpd.net/",children:"lighttpd"})," is a light HTTP server which can be configured as a suitable reverse proxy via the ",(0,n.jsx)(t.a,{href:"https://redmine.lighttpd.net/projects/lighttpd/wiki/Mod_proxy",children:"mod_proxy"})," module."]}),"\n",(0,n.jsx)(t.h2,{id:"ssl",children:"SSL"}),"\n",(0,n.jsxs)(t.p,{children:["An implementation of ",(0,n.jsx)(t.a,{href:"https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_SSL",children:"SSL support"})," via the mod_openssl module using OpenSSL may appear as follows:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:'$SERVER["socket"] == "[::]:443" {\n  ssl.engine = "enable"\n  ssl.cipher-list = "HIGH"\n  $HTTP["host"] == "owncast.yourdomain.com" {\n    ssl.pemfile = "/etc/letsencrypt/live/yourdomain.com/fullchain.pem"\n    ssl.privkey = "/etc/letsencrypt/live/yourdomain.com/privkey.pem"\n    ssl.dh-file = "/etc/letsencrypt/ssl-dhparams.pem"\n  }\n}\n'})}),"\n",(0,n.jsx)(t.h2,{id:"reverse-proxy",children:"Reverse Proxy"}),"\n",(0,n.jsx)(t.p,{children:"Proxying of incoming websocket connections is integrated with the module."}),"\n",(0,n.jsx)(t.p,{children:"An example configuration for lighttpd might appear as follows:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:'$HTTP["host"] == "owncast.yourdomain.com" {\n  # Forward all requests to Owncast:\n  proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 8080 ) ) )\n\n  proxy.forwarded = ( "host" => 1,\n                      "proto" => 1,\n                      "for" => 1,\n                      "remote_user" => 1 )\n\n  # Required for websocket (chat) forwarding:\n  proxy.header = ( "upgrade" => "enable" )\n}\n'})})]})}function a(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},28453(e,t,s){s.d(t,{R:()=>r,x:()=>l});var i=s(96540);let n={},o=i.createContext(n);function r(e){let t=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.