nginx 反向代理

根据不同的端口或server_name反向映射到不同的服务器

1, 单服务的映射:比如有个服务是部署在192.168.0.100这台机器上,访问端口是8080,现在需要在Nginx所在机器的80端口映射到192.168.0.100的8080,在http{}里加配置如下:

server {

#nginx监听端口,即对外访问端口

listen 80;

location / {

#即原服务的地址及端口

proxy_pass http://192.168.0.100:8080;

}

}

2, 多服务映射(对外访问端口不一样):比如两个或多个服务,但对外访问端口不一样,则按1的配置方法,加多一个server,有几个服务就加几个这样的配置,以下配置表示

访问80端口跳转到192.168.0.100:8080,

访问8081端口跳转到192.168.0.101:8081

server {

listen 80;

location / {

proxy_pass http://192.168.0.100:8080;

}

}

server {

listen 8081;

location / {

proxy_pass http://192.168.0.101:8081;

}

}


3, 多服务映射(对外访问端口一样):比如两个或多个服务,但对外访问端口一样,都是80端口,这时需要指定server_name,以下配置表示所有服务都通过80端口访问,但根据server_name不同映射到不同的服务:

访问test1.xxx.com时跳转到192.168.0.100:8080

访问test2.xxx.com时跳转到192.168.0.100:8081

server {

listen 80;

server_name test1.xxx.com;

location / {

proxy_pass http://192.168.0.100:8080;

}

}



server {

listen 80;

server_name test2.xxx.com;

location / {

proxy_pass http://192.168.0.100:8081;

}

}

注:server_name后面可以有多个域名,

如 server_name test1.xxx.com test2.xxx.com; 表示 test1.xxx.com和test2.xxx.com都走同样的代理

或者使用通配符,如 server_name test1.xxx.*; 表示test1.xxx.com,test1.xxx.com.cn,test1.xxx.net等等都走同样的代理。

当某个请求没有匹配到以上两个server_name时,nginx会默认转向到第一个server里,nginx把第一个server作为默认服务。也可以手动指定哪个服务作为默认服务。在端口号后面加 default_server即可。如下:


server {

listen 80;

server_name test1.xxx.com;

location / {

proxy_pass http://192.168.0.100:8080;

}

}



server {

listen 80 default_server;

server_name test2.xxx.com;

location / {

proxy_pass http://192.168.0.100:8081;

}

}



4, 当需要映射的服务很多,写的server块就很多,则可以拆分nginx.conf配置文件,在conf目录新建一个目录host,在host目录中新建xx.conf文件,有几个服务需要映射,就新建几份,如下是有8个服务,则新建了8个配置文件,

1) 编辑xx.conf,将server块拷贝到xx.conf配置文件里,一个文件就配置一个块。

2) 编辑nginx.conf文件,将所有server块去掉,在http块加上

include host/*.conf;,表示加载host目录里所有配置文件。

相关文章

部署Nginx-一个ip,多个域名,部署多个项目

一、背景无论是在centos、ubuntu、iis等云服务器,还是在个人的电脑上,当部署Nginx时,基本上都会遇到想用一台服务器(只有一个IP)映射到多个域名上,以供访问多个不同的前端项目的情况(这...

在 Nginx 中防止 SSL 证书被其他域名“窜用”

在 Nginx 中防止 SSL 证书被其他域名“窜用”(即防止未经授权的域名使用你的 SSL 证书),需要确保你的服务器配置只允许合法域名访问,并通过适当的配置阻止非法域名的 HTTPS 请求。一般情...

搭建nginx反向代理用作内网域名转发

情景由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口。非80端...

要将端口5002和5003通过Nginx代理到一个域名上的操作笔记

要将端口5002和5003通过Nginx代理到域名www.4rvi.cn的不同路径下,请按照以下步骤配置Nginx:步骤说明创建或编辑Nginx配置文件通常配置文件位于/etc/nginx/sites...

Nginx域名配置

对于想搭建自己博客或者其他个人网站的小伙伴,可能会需要配置域名。在我们购买完服务器,代码敲完,项目搞定,怎么使用域名访问呢?首先购买域名(要有DNS解析)-> 然后域名备案与审核 -> 最...

使用nginx配置动态域名解析

使用nginx配置来达到动态域名解析,resolver指令设置解析器的地址using-nginx-map-directive-to-dynamically-set-proxy-upstream要使用...