1.nginx的反向代理实例
说明:
nginx:192.168.23.110
tomcat:192.168.23.110
#这里在自己的实验机器上可以关闭防火墙,如果不想关闭防火墙可以参考:在防火墙firewall中开放端口
实例:
1.在本地计算机hosts文件配置本地解析:C:\Windows\System32\drivers\etc 最后面加上:192.168.23.110 www.hao123.com
2.或者你要是访问服务器的地址:vim /etc/hosts 最后面加上:192.168.23.110 www.hao123.com
3.在nginx里面配置跳转:
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080; #这里的是转发的地址是本机tomcat的8080端口
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
验证:在浏览器中输入:www.hao123.com 会跳转到本机的tomcat:8080地址
2.负载均衡
server:192.168.111.10
node1:192.168.111.11
node2:192.168.111.12
轮询:
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
适用于服务器配置想当的机器
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream lunxun {
server 192.168.111.11:80;
server 192.168.111.12:80;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://lunxun;
proxy_set_header Host $proxy_host; #重新定义请求头
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
权重:
当服务器配置存在差异,或者应用部署占比不同的情况下使用比较好
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream lunxun {
server 192.168.111.11:80 weight=1;
server 192.168.111.12:80 weight=3; #这台机器分配的请求数多
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://lunxun;
proxy_set_header Host $proxy_host; #重新定义请求头
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
ip_hash:
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
可以解决session不能跨服务器的问题
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream lunxun {
ip_hash;
server 192.168.111.11:80;
server 192.168.111.12:80;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://lunxun;
proxy_set_header Host $proxy_host; #重新定义请求头
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}