- 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 ,所以會尋址到項目實際路徑處理請求。