我正在尝试打包 2 个使用 nginx 作为代理的应用程序,并将每个配置文件传送到/etc/nginx/conf.d/
.
在一个文件 ( combined.conf
) 中执行此操作非常有效:
upstream backend1 {
http://localhost:8989;
}
upstream backend2 {
http://localhost:8990;
}
server {
location /backend1/ {
proxy_pass http://backend1;
}
location /backend2/ {
proxy_pass http://backend2;
}
Run Code Online (Sandbox Code Playgroud)
但是,当拆分为 2 个文件时,其中一个重定向系统会失败:
backend1.conf
:
upstream backend1 {
http://localhost:8989;
}
server {
location /backend1/ {
proxy_pass http://backend1;
}
Run Code Online (Sandbox Code Playgroud)backend2.conf
:
upstream backend2 {
http://localhost:8990;
}
server {
location /backend2/ {
proxy_pass http://backend2;
}
Run Code Online (Sandbox Code Playgroud)所以我的问题是:一个http
节点可以有 2 个不同的server
孩子吗?
Nginx文档对此一无所知。
不过,其他人似乎已经在这种架构上取得了成功:(
Nginx 版本为 1.1.19-1ubuntu0.1。
感谢您的任何建议!
经过如此轰轰烈烈的测试,我想出了一种方法来使它工作并且能够为每个应用程序发送一个配置文件。
在这里,每个应用程序在一个公共文件和一对上游/位置文件中分派:
/etc/nginx/conf.d/common-proxies.conf
:
include /upstreams/*.conf;
server {
include /locations/*.conf
}
Run Code Online (Sandbox Code Playgroud)/etc/nginx/locations/backend1.conf
location /backend1/ {
upstream http://backend1;
}
Run Code Online (Sandbox Code Playgroud)/etc/nginx/locations/backend2.conf
location /backend2/ {
upstream http://backend2;
}
Run Code Online (Sandbox Code Playgroud)/etc/nginx/upstreams/backend1.conf
upstream backend1 {
http://localhost:8989;
}
Run Code Online (Sandbox Code Playgroud)/etc/nginx/upstreams/backend2.conf
upstream backend2 {
http://localhost:8990;
}
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
21277 次 |
最近记录: |