- before Nginx+Tomcat搭建高性能负载均衡集群
step1 tomcat 配置
- 配置tomcat端口
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
- 添加连接线索 一般为域名
<Host name="bolgTest" unpackWARs="ture" autoDeploy="true" deployOnStartup="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="D:\webapps\blogTest" reloadable="true"/>
<Alias>www.textblog.net</Alias>
</Host>
此处若不希望项目通过端口号访问到 需要注释
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
- 测试
- 添加hosts 127.0.0.1 www.textblog.net
- 请求 www.textblog.net:8080 若tomcat部署在80端口 不需要写出 80为http默认端口 会默认放在80 端口处理
step2 nginx配置
#服务器的集群
upstream netitcast.com { #服务器集群名字
server www.textblog.net:8080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 127.0.0.1:28080 weight=2;
}
server {
listen 80;
server_name www.textblog.net;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_set_header Host $http_host;
proxy_pass http://netitcast.com;
proxy_redirect default;
}
#error_page 404 /404.html;
}
此处nginx服务器代理了80端口 当域名为server Name配置的域名时 将代理转发请求 到location设置下的proxy_pass中,此处需要注意的时转发默认支持ip 端口转发( 127.0.0.1:9000;) 而不是域名+端口 需要设置
proxy_set_header Host $http_host;
-
添加多站点时需要添加server标签的配置 或者添加配置文件 然后在主配置文件中关联。
-
测试
- 请求 www.textblog.net nginx因为工作在80端口 接收到改请求;
- 匹配到server 下发到映射地址 www.textblog.net:81
- tomcat 在web.xml中配置了host 为www.textblog.net ,所以会寻址到项目实际路径处理请求。
网友评论