apache - Nginx 反向代理 + Apache/Varnish
问题描述
我最近在端口 80 上设置了一个基于 Apache 的服务器,其中包含大约 3 个虚拟主机/域 + Varnish。假设 example1.com、example2.com 和 example3.com。这些都托管在一台服务器上。现在,我想安装一个第三方软件,它也需要在端口 80 上。如果你只有一个公共 IP,你不能将它指向 DNS 管理器中的特定服务器。这就是为什么我想设置一个带有反向代理的 Nginx 服务器,以便使用 1 个端口并将其指向正确的服务器。
成功设置我的 Nginx 服务器后,我将其放入:
server {
server_name example1.com;
location ~ {
proxy_pass_header Authorization;
proxy_pass http://example1.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect off;
}
}
server {
server_name example2.com;
location ~ {
proxy_pass_header Authorization;
proxy_pass http://example2.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect off;
}
}
server {
server_name example3.com;
location ~ {
proxy_pass_header Authorization;
proxy_pass http://example3.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect off;
}
}
在里面/etc/hosts
:
192.168.10.10 example1.com
192.168.10.10 example2.com
192.168.10.10 example3.com
完成此操作后,它在技术上有效。但我不认为这是最好的解决方案。所有服务器都在同一个局域网上,但由于我有 3 个虚拟主机,我不能只输入192.168.10.10:443
proxy_pass 我相信...因为源服务器不知道要服务哪个虚拟主机?我还考虑过为源服务器上的每个虚拟主机提供自己的端口,但我不知道这是否是个好主意。我知道 Cloudflare 也不需要您对源服务器进行任何更改,因此不应该要求彻底检修您的源服务器。
如果有人对处理这个特殊的“问题”有很好的建议,那么谢谢!
解决方案
推荐阅读
- python - 将数据从 R 网状化到 python 并再次返回到 R
- rest - Magento 2 REST 身份验证问题
- javascript - TypeScript 错误:“从不”类型上不存在属性“scrollIntoView”。TS2339
- scala - 如何删除包含特定值的行,同时保留具有空值的行?
- javascript - 从 Angular 中的孙子组件访问祖父组件属性
- flutter - Flutter 自定义 Clipper 半径
- javascript - 如何在提交的表单中获取 Select 控件的选定值
- javascript - javascript:json根据各自的id将数据推送到二维json数组
- java - 您如何命令 IntelliJ 在反映您的项目结构的“测试”目录中创建相应的 JUnit 测试?
- android - Android - 减少 APK 大小,针对不同架构分离 APK