这是我的情况:我将有一个运行nginx的前端服务器,以及运行带有不同rails应用程序的apache + passenger的多个后端服务器.我不是想做任何负载平衡.我需要做的是设置nginx以基于url代理到特定服务器的连接.IE,client.domain.com应指向xxx100:80,client2.domain.com应指向xxx101:80等.
我对nginx并不熟悉,但我找不到符合我情况的在线特定配置.
谢谢.
cob*_*aco 39
您可以将不同的URL与服务器块匹配,然后在每个服务器块内部进行反向代理设置
server {
server_name client.domain.com;
# app1 reverse proxy follow
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://x.x.x.100:80;
}
server {
server_name client2.domain.com;
# app2 reverse proxy settings follow
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://x.x.x.101:80;
}
Run Code Online (Sandbox Code Playgroud)
显然进一步增加nginx的设置(例如server {}
,error_page
根据需要在每一个,...)access_log
-块
jal*_*tek 24
@ mohamnag的评论是对的.proxy_pass
只允许进入location
看到:
http://wiki.nginx.org/HttpProxyModule#proxy_pass
https://www.nginx.com/resources/admin-guide/reverse-proxy/
所以正确的配置就是
server {
server_name client.domain.com;
location / {
# app1 reverse proxy follow
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://x.x.x.100:80;
}
}
server {
server_name client2.domain.com;
location / {
# app2 reverse proxy settings follow
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://x.x.x.101:80;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
60525 次 |
最近记录: |