listen to https redirect to other page not working

Sergey A. Osokin osa at freebsd.org.ru
Tue May 9 13:59:59 UTC 2023


Hi Christian,

On Tue, May 09, 2023 at 02:51:22PM +0200, Christian Rocholl wrote:
> Hi guys,
>  I am having a jpro.one parsed javafx webpage/app hosted by an nginx
> server. It is accessible via http://DOMAIN:8080. This is working as
> intended.
> 
> Now I have configured nginx so that it listens on port 80 and 443, so that,
> http://DOMAINNAME -> return https://DOMAINNAME and https://DOMAINNAME ->
> return http://localhost:8080, which I want to do.

This isn't a best design for the case.

[...]

> BUT: When I enter https://DOMAINNAME, it just says the page is not
> available. I expected to get redirected to http://localhost:8080.

[...]

>  My nginx config, checked with nginx -t, is syntax correct but fails to
> redirect me on https access. These are my nginx config files in
> /etc/nginx/conf.d/ I tried:
> 
>  - jpro.conf:
> ```
> proxy_buffering off;
>  proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-Proto $scheme;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header Host $http_host;
> proxy_set_header Upgrade $http_upgrade;
> proxy_set_header Connection "upgrade";
> proxy_read_timeout 86400;
> proxy_http_version 1.1;
>  ```
> and -DOMAIN.conf
> ```
>  upstream ppcsc {
> server localhost:8080;
> }

I'd recommend to avoid using an FQDN, so it will look like this:

  upstream ppcsc {
      server 127.0.0.1:8080;
  }

>  server {
> listen 80;
> server_name DOMAINNAME;
> return 301 https://$http_host$request_uri;
> }
>  server {
> listen 443 ssl;
> server_name DOMAINNAME;
> tcp_nodelay on;
> ssl_certificate FILE.cer;
> ssl_certificate_key FILE.key;
> ssl_protocols TLSv1.3;
> ssl_ciphers HIGH:!aNULL:!MD5;
> # return 301 http://ppcsc;
> return 301 http://$http_host:8080$request_uri;
> # location / { # proxy_pass http://ppcsc; # } }

The return directive needs to be removed from the
configuration file.  Also, remove comment from the
beginning of the line with location /, so

 location / {
     proxy_pass http://ppcsc;
 }

Enable debugging log, http://nginx.org/en/docs/debugging_log.html
to see what's going on and how nginx processes a request
to an application backend.

Hope that helps.

-- 
Sergey A. Osokin


More information about the nginx mailing list