我有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密钥。
答案 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;
}
}