在闪亮服务器无法正常工作的情况下,将NGINX中的HTTP重定向到HTTPS

问题描述

在这里,我正在按照this教程设置发光的服务器并通过Nginx将http重定向到https。

我使用以下配置设置了/etc/Nginx/sites-available/example.com。我设法通过 https://example.com 访问闪亮的应用程序 myapp 。这意味着Nginx https://example.com 正确路由到 http://example.com:3838/myapp

问题在于,当我访问 http://example.com 时,Nginx并没有将我重定向 https://example.com

任何想法为什么会发生这种情况?

server {
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;
   server_name example.com www.example.com;
   return 301 https://$server_name$request_uri;
}

server {
   listen 443 ssl;
   server_name example.com www.example.com;
   ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_prefer_server_ciphers on;
   ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;

   location / {
       proxy_pass http://my_server_ip:3838/myapp;
       proxy_redirect http://my_server_ip:3838/myapp/ https://$host/;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection $connection_upgrade;
       proxy_read_timeout 20d;
   }
}

解决方法

我认为错误在这里。一方面,您应该输入应用程序的地址,例如127.0.0.1,另一方面,您想转发到文件夹/ myapp /。但这与Nginx不同。

从proxy_pass和proxy_redirect删除/ myapp

Link

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...