Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk9 min

How to Configure Buildbot with SSL Using an Nginx Reverse Proxy

Put Buildbot behind Nginx for production HTTPS. This guide covers the master.cfg listener, public URL, certificate settings, path prefixes, SSE and WebSocket proxying, validation, security, and fixes for live-update failures.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable production pattern is to keep Buildbot’s built-in web server on a private HTTP listener and let Nginx terminate HTTPS. Nginx then proxies the Buildbot UI and API, disables response buffering for Server-Sent Events (SSE), and forwards WebSocket upgrade headers for /ws. Set Buildbot’s buildbotURL to the exact public HTTPS address so generated links and browser connections use the proxy rather than the internal port.

What the finished architecture looks like

A browser connects to Nginx over HTTPS on port 443. Nginx owns the certificate, negotiates TLS, and forwards requests over loopback (or another private network) to Buildbot’s HTTP listener. Buildbot does not need to hold a public certificate or listen on the internet.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Public endpoint: https://buildbot.example/ or a prefixed URL such as https://example/buildbot/.
  • Nginx: listens on 443 ssl, applies your TLS policy, and proxies requests.
  • Buildbot: listens on an internal address such as 127.0.0.1:8010.
  • Live updates: the /sse/ stream is sent without proxy buffering, while /ws uses HTTP/1.1 upgrade headers.

Buildbot’s current web-server documentation says, “It is usually better to put Buildbot behind a reverse proxy in production.” Older released documentation likewise explains that the built-in web server does not provide SSL and that Nginx, Apache, or lighttpd should provide the HTTP proxy layer.

Before you change the configuration

Confirm the installed Buildbot release

The latest Buildbot documentation page is marked unreleased. Configuration syntax and endpoint behavior can differ between releases, so open the documentation for the version actually installed on your master before copying an example. Keep the release number in your deployment notes and recheck the matching documentation after upgrades.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Have the required pieces ready

  • A Buildbot master that you can stop or reload safely while editing master.cfg.
  • Nginx installed on the same host or on a private network that can reach the Buildbot listener.
  • A DNS name resolving to the Nginx host.
  • A certificate and private key in files readable by the Nginx worker process. Use the certificate and key paths supplied by your certificate-management process; the example paths below are placeholders for real files.
  • A firewall that exposes HTTPS as intended but does not expose the internal Buildbot port to untrusted networks.
  • Permission to inspect browser developer tools and Nginx error logs during validation.

Configure Buildbot’s internal web listener

1. Bind the web server to a private address

In master.cfg, set the www port to an internal HTTP endpoint. This example uses loopback and port 8010:

c['www']['port'] = 'tcp:8010:interface=127.0.0.1'

Choose a free port if 8010 is already used, then use that same port in Nginx’s proxy_pass. Binding to 127.0.0.1 prevents direct remote access when Nginx runs on the same machine. If Nginx is on a separate host, bind to a private interface or address and restrict the port with a firewall; do not publish it broadly.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Buildbot’s documentation discourages using a Twisted SSL endpoint directly for this production role. A dedicated reverse proxy is the place to maintain certificates, protocol policy, logging, and reloads.

2. Set the public base URL

Set buildbotURL to the address users actually enter in their browsers:

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
c['buildbotURL'] = 'https://buildbot.example/'

For a path prefix, include that prefix and its trailing slash:

c['buildbotURL'] = 'https://example/buildbot/'

Buildbot uses this value when generating links. If it contains the internal HTTP address, omits HTTPS, or leaves out /buildbot/, pages may redirect to the wrong host, produce incorrect asset links, or attempt live connections at the wrong path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Apply and check the Buildbot configuration

Use the configuration-check and restart/reload procedure appropriate to your installed Buildbot release. Confirm that the master starts without a configuration exception and that the internal listener is accepting HTTP before involving Nginx. From the Nginx host, a request to the internal address should receive a Buildbot response:

curl -I http://127.0.0.1:8010/

A successful response proves only that the private hop works; it does not verify TLS, forwarded headers, SSE, or WebSockets.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Configure Nginx for a host-root deployment

Use this shape when Buildbot is published at the host root, such as https://buildbot.example/. Replace the server name, certificate paths, and port with values from your environment.

server {
    listen 443 ssl http2;
    server_name buildbot.example;

    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    proxy_set_header Host               $host;
    proxy_set_header X-Real-IP          $remote_addr;
    proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto  $scheme;
    proxy_set_header X-Forwarded-Server  $host;
    proxy_set_header X-Forwarded-Host   $host;

    location / {
        proxy_pass http://127.0.0.1:8010/;
    }

    location /sse/ {
        proxy_buffering off;
        proxy_pass http://127.0.0.1:8010/sse/;
    }

    location /ws {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http://127.0.0.1:8010/ws;
        proxy_read_timeout 6000s;
    }
}

The normal location handles ordinary HTML, JavaScript, API, and static-asset requests. The more specific SSE and WebSocket locations supply behavior that ordinary HTTP proxying does not.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure Nginx for a path prefix

A prefix is useful when the same hostname serves several applications, for example https://example/buildbot/. Set buildbotURL to that complete prefixed URL and preserve the matching slash behavior in Nginx:

server {
    listen 443 ssl http2;
    server_name example;

    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    proxy_set_header Host               $host;
    proxy_set_header X-Real-IP          $remote_addr;
    proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto  $scheme;
    proxy_set_header X-Forwarded-Server  $host;
    proxy_set_header X-Forwarded-Host   $host;

    location /buildbot/ {
        proxy_pass http://127.0.0.1:8010/;
    }

    location /buildbot/sse/ {
        proxy_buffering off;
        proxy_pass http://127.0.0.1:8010/sse/;
    }

    location /buildbot/ws {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http://127.0.0.1:8010/ws;
        proxy_read_timeout 6000s;
    }
}

Here Nginx removes the external /buildbot/ prefix when forwarding because the replacement URI in proxy_pass ends with /. The WebSocket rule similarly maps external /buildbot/ws to Buildbot’s internal /ws. If you change the trailing slash or use a different prefix, verify the resulting upstream URI carefully; a one-character mismatch can produce 404 responses or failed live connections.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

Why each proxy setting matters

Forwarded request headers

Buildbot needs the original request context to generate correct absolute links, identify the client, and understand that the browser used HTTPS:

Header Purpose
Host Preserves the public hostname requested by the browser.
X-Real-IP Passes the immediate client address.
X-Forwarded-For Maintains the proxy chain, including the original client address.
X-Forwarded-Proto Tells Buildbot that the external scheme was HTTPS even though the private hop is HTTP.
X-Forwarded-Server Identifies the public proxy server.
X-Forwarded-Host Preserves the externally visible host when more than one proxy or virtual host is involved.

Do not blindly trust forwarded headers from untrusted clients. Only accept and set them at a proxy you control, and restrict direct access to Buildbot so users cannot bypass that proxy.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Server-Sent Events: disable buffering

Buildbot uses the /sse/ endpoint for streaming live events. With proxy buffering enabled, Nginx may wait for a buffer to fill before sending data to the browser. The page can then appear frozen even though Buildbot is producing events. The dedicated SSE location uses proxy_buffering off; so events are delivered promptly.

This setting does not create events or fix an application that is not publishing them. It only prevents the proxy from holding already-produced events. Keep the location path aligned with the public prefix, if any.

WebSockets: upgrade the connection

The /ws endpoint requires an HTTP/1.1 upgrade. Set proxy_http_version 1.1, copy the browser’s Upgrade header, and send Connection "upgrade". Without those directives, the initial request may look like ordinary HTTP and the WebSocket handshake will fail.

proxy_read_timeout 6000s is a long example suitable for an installation where an idle connection should remain open. Choose a timeout consistent with your network, load balancer, and operational policy. A shorter value is appropriate if you prefer periodic reconnects; an overly short value causes apparently random disconnects during quiet periods.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

TLS and access-control considerations

Use current Nginx TLS guidance

The certificate directives in the example identify the files Nginx must load; they are not a complete TLS policy. Follow current Nginx and certificate-authority guidance for protocol versions, cipher selection, renewal, private-key permissions, and redirecting HTTP to HTTPS. Test renewal before the existing certificate expires and reload Nginx only after the new files pass validation.

HTTPS is not Buildbot authentication

Encryption protects data in transit between the browser and Nginx. It does not decide who may view builds or administer the master. Buildbot’s documentation states that authentication plugins are needed and that authorization rules belong in www.authz. Configure those controls deliberately, then verify both an allowed and a denied account.

Protect streaming endpoints too

REST authorization does not cover WebSocket or SSE reads. If build output or status information is sensitive, an access-controlled reverse proxy may be appropriate in addition to Buildbot’s own authentication and authorization. Apply the same policy to the normal UI, /sse/, and /ws; protecting only the HTML page can leave a streaming endpoint reachable directly.

Validate, reload, and test the complete path

  1. Check Nginx syntax: run nginx -t with the privileges required by your installation. Fix every reported error before reloading.
  2. Reload Nginx: use your operating system’s service manager, such as systemctl reload nginx, so existing connections can drain according to your service policy.
  3. Test the certificate and host: open the exact HTTPS URL named in buildbotURL. Confirm the certificate matches the hostname and that the browser does not show a mixed-content warning.
  4. Open a build page: navigate to a page that changes while a build runs. Check that links, scripts, and API calls remain under the expected host and prefix.
  5. Inspect SSE: in browser developer tools, open the Network panel, filter for sse, and confirm the request remains open and receives events while activity occurs.
  6. Inspect WebSockets: filter for ws and verify the handshake succeeds with a successful switching-protocol response. Look for continuing frames rather than an immediate close.
  7. Test a direct bypass: from an untrusted network, confirm the internal port is not reachable. From the Nginx host, retain the loopback test to distinguish an application problem from a proxy problem.
  8. Review logs: correlate Nginx access/error logs with Buildbot logs while loading the UI and starting a build. Record the public URI, upstream URI, status code, and disconnect time.

Troubleshooting by symptom

Symptom Likely cause What to check
Buildbot redirects to HTTP or the internal port Incorrect buildbotURL or missing forwarded scheme/host Use the exact public HTTPS URL and forward Host, X-Forwarded-Proto, and X-Forwarded-Host.
HTML loads but scripts or links return 404 under a prefix Prefix mismatch or incorrect proxy_pass trailing slash Compare /buildbot/ in the public URL with the internal paths and the configured buildbotURL.
Live build page never updates SSE buffering, wrong SSE location, or an upstream stream failure Confirm the request uses the dedicated /sse/ location and that proxy_buffering off is active; then inspect both logs.
WebSocket handshake fails with a 400, 404, or immediate close Missing upgrade headers or wrong path mapping Use HTTP/1.1, set Upgrade and Connection "upgrade", and map the external path to internal /ws.
Connections drop after a period of inactivity Proxy or intermediary read timeout Review proxy_read_timeout and any firewall, load-balancer, or idle-session timeout between browser and Nginx.
Only some users can see protected data Authentication or authorization policy differs between UI and streaming endpoints Review Buildbot authentication, www.authz, and proxy access controls for normal, SSE, and WebSocket requests.
Nginx reload fails Syntax error, unreadable key, duplicate listener, or invalid certificate Run nginx -t, inspect the precise file/line error, and verify certificate-key permissions and paths.

Deployment choices and trade-offs

Choice Advantages Costs and risks
Buildbot HTTP plus Nginx TLS termination Centralized certificate handling, mature TLS controls, straightforward WebSocket/SSE proxying, and one public entry point. Requires careful path, header, timeout, and reload configuration.
Buildbot’s direct Twisted SSL endpoint Fewer proxy components in a small test setup. The current documentation discourages it for production; TLS hardening, certificate operations, and proxy-style access controls are less centralized.
Another capable reverse proxy Can integrate with an existing gateway, authentication layer, or platform standard. You must reproduce equivalent support for HTTPS, forwarded context, SSE without buffering, WebSocket upgrades, prefixes, and the installed Buildbot release.

The practical choice is the one your team can patch, monitor, renew, and secure consistently. Whatever proxy you use, test the two live-update transports rather than stopping after the initial page load.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Maintenance checklist

  • Keep buildbotURL synchronized with DNS, certificates, virtual-host names, and any path-prefix change.
  • Renew certificates before expiry and verify Nginx can read the replacement key.
  • After Buildbot or Nginx upgrades, recheck the release-specific documentation and repeat UI, SSE, and WebSocket tests.
  • Monitor for unexpected direct access to the internal Buildbot port.
  • Review access logs for failed authentication and unusual streaming connections.
  • Retest long-lived WebSocket behavior after changing firewalls, load balancers, or idle timeouts.
  • Document the mapping between each public location and its internal Buildbot endpoint so future edits do not break prefix handling.

Configuration reference

For a single-host deployment, the minimum working combination is an internal Buildbot listener such as tcp:8010:interface=127.0.0.1, a matching public buildbotURL, an Nginx HTTPS server with certificate directives and forwarded headers, an ordinary proxy location, an SSE location with buffering disabled, and a WebSocket location with HTTP/1.1 upgrade headers. The certificate paths, hostname, prefix, port, TLS policy, and timeout remain deployment-specific and must be adapted rather than copied unchanged.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.