Nginx配置重定向到Golang应用程序中的ssl

时间:2019-01-23 17:46:52

标签: nginx

我有golang应用程序,此应用程序会自动生成您的ssl密钥,我的问题是我想在同一服务器上托管更多golang ..我不知道如何核心配置nginx。这是我当前的nginx配置:

server {
  listen 80;
  listen [::]:80;
  server_name upload.expert;

  location / {
      proxy_pass http://localhost:3000/;
  }
}

如果我访问http://upload.expert,则返回错误404,如果我访问https://upload.expert,请向我显示正在运行的应用程序...我想将http重定向到https。

所有在线教程都向我展示了带有ssl密钥的选项,但是我不想生成其他ssl密钥,我只想将http重定向到https并使用由我的应用程序生成的ssl密钥。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,则无需在应用程序上终止https。最佳实践是将NGINX用作应用程序实例和SSL终结点的负载平衡器。这样,您应该在NGINX上终止https并将HTTP代理到应用程序。更好的方法是从http重定向到https或重写,而不返回404。

您的NGINX配置可能是这样的:

server {
  listen *:80;
  server_name upload.expert;
  proxy_set_header Host upload.expert;
  location / {
    rewrite ^(.*)$ https://upload.expert$1 permanent;
  }
}

server {
  listen *:443 ssl;
  server_name upload.expert;
  proxy_set_header Host upload.expert;
  location / {
    proxy_pass http://localhost:3000;
  }
}