使用nginx反向代理发布多个域名80端口的WEB服务

时间:16-10-18 来源: 作者: 点击:

使用nginx反向代理发布多个域名80端口的WEB服务

? ? ? 在对外提供WEB页面服务时,提供的域名通常需要隐藏端口号和项目名,例如像。隐藏端口容易处理,将WEB容器的端口号修改为80即可满足。如果要隐藏项目的名称,在tomcat下,可以通过在server.xml中加入以下语句,在不输入项目名的情况下,自动进入对应的web服务。

? ? ? 另外如果想在一台服务器上部署多个WEB服务,也可以采用这种方式,并结合tomcat虚拟主机配置实现。

  虚拟主机在本文中不再赘述,这里要讲是使用nginx来实现该功能。

? ? ? 这种场景下的解决方案是利用nginx的反向代理功能,通过配置nginx,可以将访问80端口、单域名不同的请求映射到WEB容器上不同的项目上,甚至WEB容器的端口号都可以不设置为80,因为常常nginx和WEB容器部署到同一台服务器上,这是80端口必须分配给nginx才能监听到不到端口域名的访问。nginx的配置内容如下所示:

server { listen 80; server_name aaa.con; location / {   proxy_pass :8087/proj1/; }
     location /proj1/ {
  proxy_pass :8087/proj1/;
    }
} server {
  listen 80;
  server_name bbb.con;
  location / {
    proxy_pass :8087/proj2/;
  }

  location /proj2/ {
    proxy_pass :8087/proj2/;   }
}

? ? ? 这段配置的意思是访问或者aaa.com的请求,会被nginx映射到:8087/proj1/;而访问或者bbb.com的请求,会被映射到:8087/proj2/。多配置location /proj1/的原因是避免CSS/JS等在html中设置了项目名路径的资源因为nginx的反向代理造成丢失工程名而无法访问到资源。

? ? ? 这样,我们就能够在一台机器上发布针对若干个域名的WEB服务了。

posted on

声明:本文由(Nginx运维与架构)版权所有,禁止转载,文章链接:http://www.nd9p.com/7359.html