域名解析问题
域名访问,先从浏览器缓存中解析,然后从本地host文件解析,最后去万网解析域名。
本地host文件路径:C:\Windows\System32\drivers\etc
nginx解决端口问题
- 反向代理
- 负载均衡
- 动态路由
- 请求过滤
nginx作为web服务器
Web服务器分2类:
web应用服务器,如:
- tomcat(并发在200)
- resin
- jetty
- List item
- List item
web服务器,如:
- Apache 服务器
- Nginx(并发在上万起步)
- IIS
区分:web服务器不能解析jsp等页面,只能处理js、css、html等静态资源。
并发:web服务器的并发能力远高于web应用服务器。
采用:Nginx + tomcat
Nginx:
静态资源服务器【类似于tomcat】
反向代理服务器:代理服务器
nginx作为反向代理
什么是反向代理?
- 代理:通过客户机的配置,实现让一台服务器代理客户机,客户的所有请求都交给代理服务器处理。
- 反向代理:用一台服务器,代理真实服务器,用户访问时,不再是访问真实服务器,而是代理服务器。
nginx可以当做反向代理服务器来使用:
- 我们需要提前在nginx中配置好反向代理的规则,不同的请求,交给不同的真实服务器处理
- 当请求到达nginx,nginx会根据已经定义的规则进行请求的转发,从而实现路由功能
利用反向代理,就可以解决我们前面所说的端口问题,如图
如果是安装在本机:
nginx通过命令行来启动,操作命令:
- 启动:
start nginx.exe
- 停止:
nginx.exe -s stop
- 重新加载:
nginx.exe -s reload
需要让nginx反向代理我们的服务器,因此需要自定义nginx配置 .conf文件。
指定配置的路径:include vhost/*.conf;
创建一个指定好的文件夹
在指定文件夹内创建一个指定的配置文件
编写leyou.conf中的内容
例如:
upstream leyou-manage{
server 127.0.0.1:9001;
}
upstream leyou-gateway{
server 127.0.0.1:10010;
}
upstream leyou-portal{
server 127.0.0.1:9002;
}
server {
listen 80;
server_name ;
location / {
proxy_pass http://leyou-manage;
proxy_connect_timeout 600;
proxy_read_timeout 5000;
}
}
server {
listen 80;
server_name www.leyou.com;
location / {
proxy_pass http://leyou-portal;
proxy_connect_timeout 600;
proxy_read_timeout 5000;
}
}
server {
listen 80;
server_name ;
location / {
proxy_pass http://leyou-gateway;
proxy_connect_timeout 600;
proxy_read_timeout 5000;
}
}
解读:
- upstream:定义一个负载均衡集群
- server:集群中某个节点的ip和port信息,可以配置多个,实现负载均衡,默认轮询
- server:定义一个监听服务配置
- listen:监听的断开
- server_name:监听的域名
- location:匹配当前域名下的哪个路径。例如:
/
,代表的是一切路径
- proxy_pass:监听并匹配成功后,反向代理的目的地,可以指向某个ip和port,或者指向upstream定义的负载均衡集群,nginx反向代理时会轮询中服务列表中选择。
域名访问网站中间的流程