1

I installed the Docker extension in my Plesk Obsidian. Then I installed a docker image that raises a web server on localhost:8443. It maps the port 8443 on a chosen target port (let's say 12345). Then, I used the docker proxy-rule in a domain (my.domain.com) to forward 12345 to 8443 in the docker container.

Everything is working ok, if I go to https://my.domain.com:12345/ I correctly reach the web server in the container.

Now, I'd like to hide the 12345 port in the URL.

Following this: Hide port in Nginx reverse proxy redirection

I unchecked proxy mode for Nginx and added this addictional directives:

listen 443 ssl;
server_name_in_redirect off;
proxy_set_header Host $host:$server_port;
location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://localhost:32770;
}
access_log off;

But the 12345 is still in the URL... Suggestions?

3
  • Did you forget to put a link here "Following this: Hide port in Nginx reverse proxy redirection" ? Commented Nov 24, 2023 at 4:06
  • There are a lot of things that could cause this depending on your specific configurations of Plesk as well as DNS, SSL, and Firewall/port settings. More information is needed. Also, I think this question is more suited for Serverfault. Commented Nov 24, 2023 at 4:17
  • @MikeCiffone I added the link, thank you! I posted here as is a Plesk related issue and as you can read in the link, they suggested to post here
    – jasmines
    Commented Nov 24, 2023 at 9:39

1 Answer 1

0
+100

I'm not experienced with the nuances of Plesk, but there are two things stand out to me:

First, if your Docker container's web server is listening on 12345, then proxy_pass should be:

proxy_pass http://localhost:12345;

# Or if you're serving from a specific path

proxy_pass http://localhost:12345/foo

Second, the directive below is passing the hostname and port number to your Docker container.

proxy_set_header Host $host:$server_port;

Unless there is some other reason for this, I would just tell Nginx to forward the host name without the port number.

proxy_set_header Host $host;

Then reload nginx.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.