Nginx
应用场景:
静态资源部署
配置虚拟主机
端口绑定
worker_processes 1;
#pid logs/nginx.pid;
pid /usr/local/nginx/logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 81; #默认端口号
server_name localhost; #域名或者ip
location / {
root index; #默认访问资源的目录
index index.html index.htm; #默认访问资源名称
}
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html; #错误页面
location = /50x.html {
root html;
}
}
server {
listen 82; #默认端口号
server_name localhost; #域名或者ip
location / {
root regist; #默认访问资源的目录
index regist.html; #默认访问资源名称
}
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html; #错误页面
location = /50x.html {
root html;
}
}
}
通过上面的配置过后:
域名绑定
比如在浏览器输入www.baidu.com进行访问,首先会去找本地的host文件,在这里面寻找也没有对应的ip地址,如果有的话,就通过ip返回,然后再通过80端口去访问;如果host文件里面没有,还要通过dns服务器去找对应的域名和ip的对应关系
本地测试可以修改 hosts 文件(C:\Windows\System32\drivers\etc) 可以配置域名和 ip 的映射关系,如果 hosts 文件中配置了域名和 ip 的对应关系,不 需要走 dns 服务器。 192.168.177.129 www.hmtravel.com 192.168.177.129 regist.hmtravel.com
做好域名指向后,修改 nginx 配置文件
server{
listen 80;
server_name www.yy.com;
....
}
反向代理
正向代理
- 将请求发给代理服务器,代理服务器去访问上网,然后代理服务器再将请求的资源返还给请求的客户端,代理的是客户端
- 代理客户端
方向代理
-
想通过网络访问部署在Linux里面的网站(Tomcat),所有请求发给代理服务器nginx,再由nginx分发请求到tomcat -
通过nginx,所有资源请求都发给代理服务器上,在nginx和tomcat之间加一个防火墙,或者把tomcat这边做出内网或局域网。这样的话更加安全 -
直接访问的话,访问量太大了的话,对tomcat(z只有一台)来说,并发太低了,所以搭建一个tomcat集群,所以使用代理服务器去分发请求 -
代理服务端
配置反向代理
upstream tomcat-travel{
server 192.168.177.129:8080;
}
server {
listen 80; # 监听的端口
server_name www.hmtravel.com; # 域名或 ip
location / {
# 访问路径配置
# root index;# 根目录
proxy_pass http://tomcat-travel;
index
index.html index.htm; # 默认首页
}
}
负载均衡
tomcat搭集群:多个tomcat同时部署同一个项目,同时对外提供服务,这样就形成了tomcat集群
如果他们的性能一样,都均等,那么这就是负载均衡
配置负载均衡
将多个tomcat的端口进行修改
将这些tomcat启动起来
现在开始修改nginx的配置文件
在配置文件里面的upstream里面多定义几个server,地址一样,端口不一样,如下:
upstream tomcat-travel {
server 192.168.177.129:8080;
server 192.168.177.129:8081;
server 192.168.177.129:8082;
}
其他内容不需要改变,这样这三个tomcat的被访问的频率一样,理论上是1:1:1
可以通过weight来修改该tomcat被访问的概率:1:2:1
upstream tomcat-travel {
server 192.168.177.129:8080;
server 192.168.177.129:8081 weight=2;
server 192.168.177.129:8082;
}
|