<分区>
<分区>
我有一个用于各种个人项目的内部 LAMP (Ubuntu 18.04) 服务器。它一直直接暴露在端口 80 和 443 上。它托管 4 个站点(Apache 虚拟主机),我对域使用 CloudFlare 全 SSL。我使用 certbot 颁发了 Let's Encrypt 证书。这一切都是按照在线教程完成的,因为我从来都不是系统管理员。
昨晚,一位 friend 启动了 NGINX 服务器,端口 80 和 443 上的所有流量都转到了它。我们正在一起开展一些项目,现在我的网络中有几台服务器,因此有 nginx 反向代理。我被要求简单地使用 ssl passthrough 来重新启用对我的网站的访问。
我知道配置文件的位置,我知道如何重新启动 nginx 服务,但仅此而已。我从未使用过 NGINX,我不知道要使用什么配置或如何继续。
最佳答案
你要找的答案在这里:
https://reinout.vanrees.org/weblog/2017/05/02/https-behind-proxy.html
总而言之,这里是您需要的配置选项。
server {
listen 443;
server_name sitename.example.org;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_pass https://internal-server-name;
proxy_http_version 1.1;
}
ssl on;
....
ssl_certificate /etc/ssl/certs/wildcard.example.org.pem;
ssl_certificate_key /etc/ssl/private/wildcard.example.org.key;
}
当然,您需要在代理服务器上设置 SSL,但这是基本思路。
值得注意的是,默认情况下 nginx 将使用 HTTP/1.0 进行代理。这就是为什么您需要 proxy_http_version
建议您阅读完整的博文以了解更多背景信息。
关于apache - 设置后引入NGINX反向代理的NGINX如何配置SSL透传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59652707/
相关文章:
apache - SSL 问题。 NET::ERR_CERT_DATE_INVALID
apache - 如何在 ftp 任务的构建文件中指定类路径
html - 在 HTTP 页面上通过 HTTPS 加载脚本或其他资源是否有问题?
nginx - 如何在 nginx 配置中不需要 .dotted 文件路径
php - 使用 session 时在 xampp 上可能导致 ERR_CONNECTION_RESET 错误的原因
ssl - 在 Nginx 页面上启用 SSL 时重定向到默认页面
python - 如何使用 Python 创建 SSL 套接字服务器