在服务器不工作的情况下,在NGINX中将HTTP重定向到HTTPS

在服务器不工作的情况下,在NGINX中将HTTP重定向到HTTPS,nginx,https,shiny-server,Nginx,Https,Shiny Server,在这里,我按照教程设置一个闪亮的服务器,并通过nginx将http重定向到https 我使用下面的配置设置我的/etc/nginx/sites available/example.com。我设法通过访问闪亮的应用程序myapp。这意味着nginx正在正确路由到 问题是,当我访问nginx时,它并没有像应该的那样将我重定向到 你知道为什么会这样吗 server { listen 80 default_server; listen [::]:80 default_server ipv6o

在这里,我按照教程设置一个闪亮的服务器,并通过nginx将http重定向到https

我使用下面的配置设置我的
/etc/nginx/sites available/example.com
。我设法通过访问闪亮的应用程序myapp。这意味着nginx正在正确路由到

问题是,当我访问nginx时,它并没有像应该的那样将我重定向到

你知道为什么会这样吗

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的工作原理不同

从代理\传递和代理\重定向中删除:/myapp


我认为错误就在这里。一方面,您应该输入应用程序的地址,例如127.0.0.1,另一方面,您希望转发到文件夹/myapp/。但这与Nginx的工作原理不同。location/myapp/{……}感谢您的评论。我通过从
proxy\u pass
proxy\u redirect
中删除后缀
/myapp
解决了这个问题。尽管如此,我还是很惊讶nginx重定向到了正确的应用程序,因为在这个闪亮的服务器中有几个应用程序可用,我没有在配置文件的任何地方定义我想要的应用程序。这有点像魔术,我不喜欢它…超级我把它再次作为一个答案,以便下一个可以看到它。它不是魔术Nginx路线端口3838。您可以使用“location/myapp{….”之类的位置部分进行设置