Free tools Windows power users keep installed
One-click scans. No signup required.
Run the Java application on port 8080 and let a reverse proxy such as Nginx be the only public listener on port 80. The proxy forwards requests for the Java app to 127.0.0.1:8080 and sends blog requests to a separate backend, using hostnames or URL paths to decide which service receives each request. In Spring Boot, set server.port=8080 and explicitly enable forwarded-header handling so redirects, HTTPS detection and client addresses work correctly behind the proxy.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
The architecture: one public port, several private services
Two independent processes cannot both bind directly to the same IP address and TCP port. The solution is to give port 80 to one edge process—the reverse proxy—and keep the Java process on 8080. The proxy accepts the browser connection, examines the request, and opens a second connection to the appropriate backend.
As an Amazon Associate I earn from qualifying purchases.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
A typical request flow is:
- A DNS record points
app.example.comandblog.example.comto the server. - Nginx listens on
0.0.0.0:80(and, if configured, the server’s IPv6 address). - A request for
app.example.comis forwarded to the Java process at127.0.0.1:8080. - A request for
blog.example.comis forwarded to the blog’s own listening port.
The Java and blog processes therefore do not compete for port 80. Only the proxy needs to be reachable from the internet; private backend ports can be blocked by the firewall.
Choose how the blog and Java app share port 80
Hostname-based routing
Use separate hostnames, such as app.example.com for the Java app and blog.example.com for the blog. Nginx selects a server block from the HTTP Host header. This is usually the cleanest arrangement because each application keeps its own root URL, cookies and asset paths.
#1 Best Overall
- DUAL-BAND WIFI 6 ROUTER: Wi-Fi 6(802.11ax) technology achieves faster speeds, greater capacity and reduced network congestion compared to the previous gen. All WiFi routers require a separate modem. Dual-Band WiFi routers do not support the 6 GHz band.
- AX1800: Enjoy smoother and more stable streaming, gaming, downloading with 1.8 Gbps total bandwidth (up to 1200 Mbps on 5 GHz and up to 574 Mbps on 2.4 GHz). Performance varies by conditions, distance to devices, and obstacles such as walls.
- CONNECT MORE DEVICES: Wi-Fi 6 technology communicates more data to more devices simultaneously using revolutionary OFDMA technology
- EXTENSIVE COVERAGE: Achieve the strong, reliable WiFi coverage with Archer AX1800 as it focuses signal strength to your devices far away using Beamforming technology, 4 high-gain antennas and an advanced front-end module (FEM) chipset
- OUR CYBERSECURITY COMMITMENT: TP-Link is a signatory of the U.S. Cybersecurity and Infrastructure Security Agency’s (CISA) Secure-by-Design pledge. This device is designed, built, and maintained, with advanced security as a core requirement.
Path-based routing
Alternatively, expose both services under one hostname, for example example.com/ for the Java app and example.com/blog/ for the blog. This uses location blocks instead of separate hostnames. Check that the blog supports a subdirectory URL: applications that generate absolute links, set cookies for the root path or assume they live at / may need additional base-URL settings.
| Decision | Hostname routing | Path routing |
|---|---|---|
| Public URLs | app.example.com and blog.example.com |
example.com/ and example.com/blog/ |
| Application changes | Usually minimal | Blog and Java app may need a configured base path |
| Proxy selection | server_name chooses the backend |
location prefix chooses the backend |
| Cookie and asset isolation | Strong separation by host | Requires careful path and cookie configuration |
Configure Spring Boot to listen on 8080
Set the port in application.properties
Spring Boot’s embedded server uses port 8080 by default for a standalone application. Make the choice explicit in src/main/resources/application.properties:
server.port=8080
server.forward-headers-strategy=FRAMEWORK
The first property fixes the Java application’s listening port. The second tells Spring Boot to process the proxy’s forwarded headers with Spring’s forwarded-header support. Use NATIVE instead when you want the servlet container’s native forwarded-header handling and your container is configured for it. NONE ignores forwarded headers and is inappropriate when the application must know the original scheme, host or client address.
Override the port at launch
You can keep the packaged configuration unchanged and pass a command-line property when starting the application:
Rank #2
- Dual-band Wi-Fi with 5 GHz speeds up to 867 Mbps and 2.4 GHz speeds up to 300 Mbps, delivering 1200 Mbps of total bandwidth¹. Dual-band routers do not support 6 GHz. Performance varies by conditions, distance to devices, and obstacles such as walls.
- Covers up to 1,000 sq. ft. with four external antennas for stable wireless connections and optimal coverage.
- Supports IGMP Proxy/Snooping, Bridge and Tag VLAN to optimize IPTV streaming
- Access Point Mode - Supports AP Mode to transform your wired connection into wireless network, an ideal wireless router for home
- Advanced Security with WPA3 - The latest Wi-Fi security protocol, WPA3, brings new capabilities to improve cybersecurity in personal networks
java -jar app.jar --server.port=8080
Spring Boot’s relaxed binding also accepts the environment variable SERVER_PORT=8080. Use one configuration method consistently so an environment variable or command-line argument does not unexpectedly override the file.
Bind the backend privately
If the proxy and Java process run on the same machine, binding the Java listener to loopback prevents direct external connections to 8080. The exact setting depends on how your application is deployed; verify the resulting socket with a listening-port command after changing it. If the app is on another host or in a container network, use the private address that the proxy can reach instead of loopback.
Install and configure the reverse proxy
Install Nginx using your operating system’s package manager, then create a site configuration. Distribution layouts differ: some load files from a directory such as /etc/nginx/conf.d/, while others enable files from a sites-enabled directory. Keep the example below as a template and place it where your installation includes it.
Hostname-based configuration
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name blog.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
The blog’s upstream port in this example is illustrative; replace 3000 with the port on which your blog actually listens. Both services can use port 80 because Nginx distinguishes the requests by hostname.
Rank #3
- NIGHTHAWK WIFI 6 ROUTER FOR YOUR WHOLE HOME: Delivers fast, reliable WiFi across every room of your apartment or small home for streaming, gaming, video calls, and smart home devices, all running at the same time without slowing each other down.
- WORKS WITH YOUR EXISTING INTERNET SERVICE: Pairs with your existing modem or gateway via ethernet. Compatible with most cable, fiber, DSL, and satellite providers. Some gateways and modem router combos may require bridge mode. No coax needed.
- SET UP AND MANAGE YOUR NETWORK WITH THE NIGHTHAWK APP: Download the free Nighthawk app on iOS or Android for guided setup. Manage WiFi, run speed tests, pause devices, and set up guest networks from anywhere. Active internet required.
- READY FOR THE DEVICES YOU ALREADY OWN: Your phones, laptops, and TVs work right out of the box. WiFi 6 delivers speeds up to 1.8 Gbps across 2.4 GHz and 5 GHz bands. Backward compatible with WiFi 5 and earlier.
- COVERAGE IN EVERY ROOM: Covers up to 1,500 sq. ft. for up to 20 connected devices. Walls, floors, and interference can reduce range. Larger or multi-story homes may benefit from a NETGEAR Orbi mesh WiFi system.
Path-based configuration
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /blog/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Whether the trailing slash on proxy_pass is correct depends on whether the blog expects the /blog/ prefix or expects requests without it. Test generated links, stylesheets, images, feeds and administrative URLs before choosing this form.
Forwarded headers and Spring Boot security
A proxy terminates the browser’s connection and creates a new backend connection. Without extra headers, the Java app may see the proxy’s address as the client and may believe the request used HTTP even when the original request used HTTPS.
Recommended Free Tools
The important headers are:
Host: the public hostname requested by the browser.X-Forwarded-For: the originating client address.X-Forwarded-Proto: the original scheme, such ashttporhttps.
Set these values at the edge proxy. The configuration above assigns X-Forwarded-For from Nginx’s connection address, rather than blindly trusting a value supplied by an outside client. Spring Security documentation warns that forwarded headers are client-controlled unless the trusted proxy overwrites or strips them.
Spring Boot exposes three strategies through server.forward-headers-strategy:
Rank #4
- 𝐅𝐮𝐭𝐮𝐫𝐞-𝐏𝐫𝐨𝐨𝐟 𝐘𝐨𝐮𝐫 𝐇𝐨𝐦𝐞 𝐖𝐢𝐭𝐡 𝐖𝐢-𝐅𝐢 𝟕: Powered by Wi-Fi 7 technology, enjoy faster speeds with Multi-Link Operation, increased reliability with Multi-RUs, and more data capacity with 4K-QAM, delivering enhanced performance for all your devices.
- 𝐁𝐄𝟑𝟔𝟎𝟎 𝐃𝐮𝐚𝐥-𝐁𝐚𝐧𝐝 𝐖𝐢-𝐅𝐢 𝟕 𝐑𝐨𝐮𝐭𝐞𝐫: Delivers up to 2882 Mbps (5 GHz), and 688 Mbps (2.4 GHz) speeds for 4K/8K streaming, AR/VR gaming & more. Dual-band routers do not support 6 GHz. Performance varies by conditions, distance, and obstacles like walls.
- 𝐔𝐧𝐥𝐞𝐚𝐬𝐡 𝐌𝐮𝐥𝐭𝐢-𝐆𝐢𝐠 𝐒𝐩𝐞𝐞𝐝𝐬 𝐰𝐢𝐭𝐡 𝐃𝐮𝐚𝐥 𝟐.𝟓 𝐆𝐛𝐩𝐬 𝐏𝐨𝐫𝐭𝐬 𝐚𝐧𝐝 𝟑×𝟏𝐆𝐛𝐩𝐬 𝐋𝐀𝐍 𝐏𝐨𝐫𝐭𝐬: Maximize Gigabitplus internet with one 2.5G WAN/LAN port, one 2.5 Gbps LAN port, plus three additional 1 Gbps LAN ports. Break the 1G barrier for seamless, high-speed connectivity from the internet to multiple LAN devices for enhanced performance.
- 𝐍𝐞𝐱𝐭-𝐆𝐞𝐧 𝟐.𝟎 𝐆𝐇𝐳 𝐐𝐮𝐚𝐝-𝐂𝐨𝐫𝐞 𝐏𝐫𝐨𝐜𝐞𝐬𝐬𝐨𝐫: Experience power and precision with a state-of-the-art processor that effortlessly manages high throughput. Eliminate lag and enjoy fast connections with minimal latency, even during heavy data transmissions.
- 𝐂𝐨𝐯𝐞𝐫𝐚𝐠𝐞 𝐟𝐨𝐫 𝐄𝐯𝐞𝐫𝐲 𝐂𝐨𝐫𝐧𝐞𝐫 - Covers up to 2,000 sq. ft. for up to 60 devices at a time. 4 internal antennas and beamforming technology focus Wi-Fi signals toward hard-to-reach areas. Seamlessly connect phones, TVs, and gaming consoles.
| Value | Behavior | When to use |
|---|---|---|
NATIVE |
Use the embedded servlet container’s forwarded-header support. | Use when the container is configured to process the headers correctly. |
FRAMEWORK |
Use Spring’s ForwardedHeaderFilter for servlet applications or ForwardedHeaderTransformer for reactive applications. |
A predictable choice when you want Spring itself to apply the proxy metadata. |
NONE |
Ignore forwarded headers. | Only when no trusted proxy metadata is required. |
Spring Boot defaults to NATIVE on a supported cloud platform and NONE elsewhere. A self-managed Nginx server therefore needs an explicit strategy if the app must reconstruct the public request.
Start-up sequence and verification
- Start the Java application and confirm it reports a successful bind on port 8080.
- Start the blog on its own private port and verify that it responds locally.
- Check that port 80 is free before starting Nginx:
sudo ss -tlnp | grep :80If another process already owns the port, stop it or move it before continuing.
- Validate the Nginx configuration with the distribution’s configuration-test command, commonly
sudo nginx -t. - Reload Nginx after a successful test so active connections are not unnecessarily dropped.
- From the server, test the Java backend directly with
curl http://127.0.0.1:8080/. A response here proves the app is listening, but does not prove that proxy routing is correct. - Test through each public hostname and inspect the response’s redirects, absolute links, cookies and generated URLs.
Diagnose common failures
Nginx reports “address already in use”
Another service has bound port 80, or an old Nginx process is still running. Use sudo ss -tlnp | grep :80 to identify the owner, then stop or reconfigure that service. Do not move the Java app to port 80 merely to avoid the conflict; keeping it on 8080 preserves the proxy boundary.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →A 502 Bad Gateway appears
Nginx cannot connect to the configured upstream. Confirm that the Java process is running, that it is listening on the address in proxy_pass, and that local firewall rules permit the connection. If the app was bound to loopback, the proxy must run on the same host; a proxy on another machine cannot reach 127.0.0.1 on the application host.
Redirects point to the wrong scheme or port
This usually means the application is not processing the proxy metadata. Confirm that Nginx sets Host and X-Forwarded-Proto, then set Spring Boot’s forwarded-header strategy to NATIVE or FRAMEWORK. Make sure an untrusted client cannot inject replacement forwarded headers before they reach the application.
Best Value
- Dual band router upgrades to 1200 Mbps high speed internet (300mbps for 2.4GHz plus 900Mbps for 5GHz), reducing buffering and ideal for 4K stream
- Full Gigabit Ports - Gigabit Router with 4 Gigabit LAN ports, ideal for any internet plan and allow you to directly connect your wired devices
- Boosted Coverage - Four external antennas equipped with Beamforming technology extend and concentrate the Wi-Fi signals
- MU-MIMO technology - (5GHz band) allows high speeds for multiple devices simultaneously
- Access Point Mode - Supports AP Mode to transform your wired connection into wireless network, an ideal wireless router for home
The application logs the proxy address instead of the visitor
Check the X-Forwarded-For value set by Nginx and verify that Spring’s selected strategy is active. If there is more than one proxy, document the trusted chain and configure each edge to overwrite or append headers deliberately rather than accepting arbitrary client values.
The blog loads without CSS or images
This is common with path-based routing when the blog believes it is installed at the domain root. Prefer a dedicated blog hostname, or configure the blog’s public base URL and adjust the path-prefix handling so generated asset and canonical URLs include /blog/.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPort 80, privileges and production hardening
On Linux, ports below 1024 normally require root privileges or the CAP_NET_BIND_SERVICE capability. Running the Java virtual machine on 8080 avoids granting that privilege to the application. Let the proxy, which is designed to be the public edge, own port 80, and run the Java process with the least privileges needed for its files and service account.
After HTTP routing works, add HTTPS at the proxy if your deployment requires encrypted public traffic. The TLS termination point changes which component receives certificates and which component must set X-Forwarded-Proto; keep that choice consistent with the Spring Boot strategy. Restrict direct access to 8080 and the blog’s backend port so users cannot bypass hostname, authentication or header policy at Nginx.
Proxy alternatives and routing choices
| Axis | Nginx | Apache HTTP Server | Cloud load balancer |
|---|---|---|---|
| Where it runs | On the application host or a nearby reverse-proxy host | On the application host or a nearby reverse-proxy host | Provider-managed edge, usually forwarding to a private service |
| Routing key | Hostname or path rules | Hostname or path rules | Provider-specific host/path rules |
| Forwarded-header responsibility | Overwrite headers at the trusted edge | Overwrite headers at the trusted edge | Confirm exactly which headers the service supplies and which your instance must trust |
| TLS termination | At Nginx or at the Java app | At Apache or at the Java app | Often at the managed edge, with private forwarding to the origin |
The essential design does not change: one trusted edge owns the public listener, routes each request to the correct backend, and communicates the original host, scheme and client address through headers that the application is configured to process.
Quick Recap
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.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →

