目录
1:配置文件config/nginx.conf内容结构:分3部分
一:介绍
Nginx:属于一种服务器
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,
中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。
具体应用
1:部署静态资源
2:反向代理
3:负载均衡
二:常用命令
启动服务
start nginx
停止服务
nginx.exe -s quit
重新载入(重启后)
nginx.exe -s reload
三:配置文件config/nginx.conf
1:配置文件config/nginx.conf内容结构:分3部分
1:全局块:Nginx运行相关的全局配置
2:events块:和网络连接相关的配置
3:http块:代理、缓存、日志记录、虚拟主机配置---这部分是配置最频繁的,我们一般就配置这个
(http块中又包括两部分: http块和Server块)
(http块中可以配置多个Server块,每个Server块可以配置多个localtion块)
http中的http全局块:
http中的Server块:(多个)
Server全局块:可以配置端口号listen,服务器名称server_name一般名字为域名
localtion块(多个):root配置根目录,index配置默认地址(可以设置多个)
2:完全体配置
(这个是完全的例子,反向代理、负载均衡这里都有):位置在http中的server中的
#全局块
worker_processes 1;
#events块
events {
worker_connections 1024;
}
#http块
http {
#http的全局块
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#负载均衡
upstream targetserver{
#server 192.168.200.201:8080; #这里写真正的web服务器ip地址
#server 192.168.200.201:8081;
#server 192.168.200.201:8080 weight=5; #负责均衡策略weight权重方式
#server 192.168.200.201:8081 weight=10;
#server 127.0.0.1:8845;
#server 127.0.0.1:8846;
server 127.0.0.1:8847;
}
upstream nacos-cluster{
server 127.0.0.1:8845;
server 127.0.0.1:8846;
server 127.0.0.1:8847;
}
#http的server块--这个可以有多个
server {
listen 80; #端口号
server_name localhost; #服务器名称server_name一般名字为域名
location / { #匹配客户端请求url
root html; #指定静态资源根目录
index index.html index.htm; #指定默认页(可以设置多个)
proxy_pass https://www.baidu.com/; #配置反向代理-这里写真正的web服务器ip地址
}
location /nacos { #匹配客户端请求url
proxy_pass http://nacos-cluster; #配置反向代理,这里写真正的web服务器ip地址
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
四:部署静态资源
1:静态资源
指在服务器真是存在并能直接展示的文件,如html、css、js、图片、视频)
2:Ngnix作为静态Web服务器
Ngnix可以作为静态Web服务器来部署静态资源。
相比较tomcat、Ngnix处理静态资源的能力更加高校,生产环境中一般将静态资源部署到Ngnix中
(静态资源:指在服务器真是存在并能直接展示的文件,如html、css、js、图片、视频)
3:Ngnix部署静态资源
静态资源部署到Ngnix中非常简单,只需要将文件复制到Ngnix安装目录下的html中即可
访问:ip:端口号:html文件名即可
五:反向代理
1:为什么用代理?
--公司处于在内网当中,不能直接访问web服务器,所以要代理帮连网
--就算客户端能直接访问web服务器,但是一般都要统一管理,所以需要有代理
2:正向代理
正向代理服务器是一个位于客户端和原始服务器(origin server)之间的服务器
为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。
3:反向代理
反向代理服务器位于用户与目标服务器之间,
但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定,
对于用户来说,访问反向代理服务器是完全无感知的,不知道代理服务器的存在
4:反向代理的配置
一台电脑作为反向代理服务器(Ngnix),另一台电脑作为web服务器(tomcat)
server的location里配置proxy_pass 127.23.212.2; #配置反向代理,这里写真正的web服务器ip地址
5:访问:
反向代理服务器ip:端口号/文件名
---注意:ip不要写真正的web的ip地址
六:负载均衡
1:负载均衡介绍
(--就是有多台web服务器,ngnix做中间代理)
早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,
但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。
**应用集群:**将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据
**负载均衡器:**将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理----负载均衡
2:负载均衡策略:
使用的话就写在server 192.168.200.201:8080后边就行
轮询 默认方式
weight 权重方式 根据权重分发请求,权重大的分配到请求的概率大
ip_hash 依据ip分配方式 根据客户端请求的IP地址计算hash值, 根据hash值来分发请求, 同一个IP发起的请求, 会发转发到同一个服务器上
least_conn 依据最少连接方式 哪个服务器当前处理的连接少, 请求优先转发到这台服务器
url_hash 依据url分配方式 根据客户端请求url的hash值,来分发请求, 同一个url请求, 会发转发到同一个服务器上
fair 依据响应时间方式 优先把请求分发给处理请求时间短的服务器
3:负载均衡配置
#upstream指令可以定义一组服务器
#负载均衡:如果不配置具体的负载均衡策略,就是轮询 来回换
upstream targetserver{
server 192.168.200.201:8080; #这里写真正的web服务器ip地址
server 192.168.200.201:8081;
server 192.168.200.201:8080 weight=5; #负责均衡策略weight权重方式
server 192.168.200.201:8081 weight=10;
}
location / { #匹配客户端请求url
root html; #指定静态资源根目录
index index.html index.htm; #指定默认首页(可以设置多个)
proxy_pass targetserver; #配置反向代理,这里写真正的web服务器ip地址
}