nginx代理两个服务器的22端口,其中一个不能远程
时间: 2024-09-11 21:08:04 浏览: 65
配置nginx保证frps服务器与web共用80端口的方法
Nginx可以被配置成一个反向代理服务器,它可以将客户端的请求转发到后端的多个服务器上。如果需要代理两个服务器的22端口(SSH服务),其中一个服务器不能远程访问,你可以在Nginx中设置不同的location块来处理不同的后端服务器。对于不能远程访问的服务器,你可以通过配置Nginx的`allow`和`deny`指令来限制访问源。
以下是一个简单的配置示例,假设Nginx监听在80端口,用于代理后端服务器的SSH服务:
```nginx
server {
listen 80;
server_name example.com; # 你的域名或者IP地址
location /ssh {
proxy_pass http://backend1:22; # backend1是可以远程访问的服务器的IP或者主机名
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /ssh2 {
allow 192.168.1.0/24; # 允许来自192.168.1.0/24这个网段的访问
deny all; # 拒绝所有其他来源的访问
proxy_pass http://backend2:22; # backend2是不能远程访问的服务器的IP或者主机名
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
在这个配置中,通过访问`http://example.com/ssh`将转发到`backend1`的22端口,而`http://example.com/ssh2`则会转发到`backend2`的22端口,但仅限于来自192.168.1.0/24网段的请求。
阅读全文