Nginx 如何设置反向代理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 如何设置反向代理相关的知识,希望对你有一定的参考价值。

参考技术A 如已经安装好了nginx相关的环境,现仅展示相关的反向代理的配置。默认nginx.confi的配置,可能与下面的图会有不同,重要的是后面的配置。 已经安装好了nginx相关的环境,现仅展示相关的反向代理的配置。默认nginx.confi的配置,可能与下面的图会有不同,重要的是后面的配置。-----注意查找nginx的默认配置文件,nginx.conf文件修改设置代理在nginx.conf配置中添加下图相关的配置,以线圈中的,其中的路径要以实际的配置文件路径为主查看上面的配置中有引用/usr/local/u-mail/config/nginx/reverse-proxy.conf 配置文件.检查测试配置配置完后,使用nginx –t的命令测试一下,配置是否正确.是否有提示相关的错误.这个服务的路径要以具体的为主.如配置有问题,按相关的提示进行更改.对比上面的配置信息进行查看.然后再重启下nginx的服务,使其加载刚刚的配置.7测试效果再访问测试下相关的站点是否正常.是否会跳转到对应网站8除了nginx映射之外我们还可以通过使用设置域名解析URL跳转来做(只有部分域名解析服务商才提供此项服务)

设置好 NGINX 反向代理后,如何在引入 NGINX 反向代理的 NGINX 上配置 SSL 直通? [复制]

【中文标题】设置好 NGINX 反向代理后,如何在引入 NGINX 反向代理的 NGINX 上配置 SSL 直通? [复制]【英文标题】:How to configure SSL passthrough on NGINX where the NGINX reverse proxy is introduced after it was set up? [duplicate] 【发布时间】:2020-04-26 09:26:54 【问题描述】:

我有一个用于各种个人项目的内部 LAMP (Ubuntu 18.04) 服务器。它一直直接暴露在端口 80 和 443 上。它托管 4 个站点(Apache 虚拟主机),我对域使用 CloudFlare 完整 SSL。我使用 certbot 发布了 Let's Encrypt 证书。这一切都是按照在线教程完成的,因为我从来都不是系统管理员。

昨晚一个朋友安装了 NGINX 服务器,端口 80 和 443 上的所有流量都转到它。我们正在一起做一些项目,现在我的网络中有几台服务器,因此使用了 nginx 反向代理。我被要求简单地使用 ssl passthrough 来重新启用对我的网站的访问。

我知道配置文件的位置,也知道如何重启 nginx 服务,但仅此而已。我从未使用过 NGINX,也不知道要使用什么配置或如何进行。

【问题讨论】:

【参考方案1】:

你要找的答案在这里: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

建议您阅读完整的博文以了解更多背景信息。

【讨论】:

如果这是 SSL 直通,为什么 nginx 服务器上的证书位置?我需要重新签发吗?或者从目标服务器复制它们?这就是我开始感到困惑的地方。 是的,这对我没有帮助。这不是我想做的。我想在 nginx 服务器上托管 SSL 证书。我只是希望该流量通过目标服务器。这不可能吗? @S16 试试这个 serversforhackers.com/c/… 我不想在 NGINx 终止证书,我想要真正的直通。该解决方案最终使用流进行真正的直通,并且与这两种解决方案都相去甚远。

以上是关于Nginx 如何设置反向代理的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Nginx 反向代理后面设置 MongoDB

【nginx】如何解决使用nginx作为反向代理端口耗尽问题?

如何使用多个节点应用程序设置 nginx 反向代理

如何在 Nginx 中为 Janus REST api 和 socket api 设置反向代理?

nginx 反向代理 虚拟二级目录

如何使用nginx设定反向代理