1.基本的负载配置
Nginx最简单的配置模块如下
upstream name{
server ip:port;
server ip:port;
} server {
listen 80;
server_name 域名/ip;
location / {
proxy_pass http://name;
index index.html index.htm;
}
}
需要注意的是proxy_pass中的 http://name中的name,指代的就是upstream的name
当upstream中只有一个server时,proxy_pass可以写成http://ip:port
server_name的意思是获取访问方的信息,可以是IP,可以是域名,指的是浏览器中输入的url
假如server_name写的是 www.baidu.com,那么他只过滤请求前缀是www.baidu.com的请求,www.souhu.com的请求不是这个规则
Nginx的配置文件中可以配置多段组合
注意:如果一个端口要负载多个tomcat应用的话,server_name必须写域名,否则Nginx只会处理第一个server的规则
2.反向代理
反方代理的意思就是将用户访问的地址重定向到其他的服务,假如要访问www.aa.com/a,通过配置Nginx的反向代理实际指向了b
server { listen 80;
server_name dist.hp.com;
location /bigscrbe{
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:3080/bigscrbe;
#proxy_pass http://tomcat;
} location /{
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
#proxy_pass http://tomcat;
} access_log logs/dist_access.log;
}
这个例子中 访问dist.hp.com指向的是一个网站,而访问dist.hp.com/bigscrbe给人的感觉是访问dist.hp.com一个资源,实际上是访问了另一个tomcat应用
这个也是Nginx二级目录的用法