1、nginx作用
1、高性能的http和反向代理web服务器,特点是占有内存少,并发能力强。Nginx专为性能开发,能经受高负载(why)并发数支持高达50000个。支持热部署
2、反向代理
正向代理(代理客户端):浏览器配置代理服务器,通过代理服务器进行互联网访问
反向代理(代理服务器端): 客户端直接访问反向代理服务器,反向代理服务器请求真实的服务器,对外暴露反向代理服务器,隐藏真实服务器
3、负载均衡:即将高并发的请求分发到多个服务器上,降低单个服务器的压力。
4、动静分离:提高网站的反应速度,将动态资源和静态资源分别部署,一般将静态资源部署到nginx服务器上,动态资源通过反向代理转到相应的后台获取,实现动静分离,使用前后端分离,可以有效提高前端页面的响应速度。
负载均衡策略:
1、轮询 (默认)
2、weight 权重分配
3、ip_hash
4、least_conn 最小连接
2、ngnix的安装
2.1 window安装:下载后解压到无中文路径下;默认80端口
启动nginx;访问127.0.0.1:80
2.2 Linux安装
whereis nginx:查看nginx是否安装
上传文件到服务器:tar -xzvf file.tar.gz
进入文件:一次执行命令 ./configure;
make
make install
whereis nginx:查找安装目录,进入目录
sbin目录下执行nginx
nginx配置文件结构:
全局配置
events {
worker_connections 1024;
}
http {
http 配置
upstream XX{
server 127.0.0.1:8081;
server 127.0.0.1:8080 weight=2;
}
server {
listen 80;
server_name localhost;
location / { #根路径的请求
root html;
index index.html index.htm;
}
location /edu/ { # http://www.abc.com/edu/
proxy_pass http://XX;
}
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
}
3、nginx配置反向代理
3.1 简单代理网站
修改nginx.conf文件
server {
listen 8088; #监听端口
server_name localhost; #配置域名可以解析才可以转到代理网站
location / {
root html;
index index.html index.htm; # 默认nginx页面
proxy_pass http://www.bilibili.com; # 代理网站地址
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3.2 根据不同的请求路径请求不同的端口server {
listen 8089;
server_name www.abc.com; #根据不同的请求请求不同的端口www.abc.com配置到hosts文件中
location ~ /vod/ { #请求中包含vod的的请求 http://www.abc.com:8089/vod/test
proxy_pass http://127.0.0.1:8080;
}
location ~ /edu/ { # http://www.abc.com:8089/edu/test
proxy_pass http://127.0.0.1:8081;
}
}
3.3 关于nginx的location路径和proxy_pass代理的上下文路径细节问题,以下分为四种情况来说明:
4、配置负载均衡
upstream myserver{
server 127.0.0.1:8081;
server 127.0.0.1:8080 weight=2;
}
server {
listen 8088;
server_name localhost; #配置域名可以解析才可以转到代理网站
location / {
proxy_pass http://myserver;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
fail_timeout 与max_fails结合使用
max_fails 设置在fail_timeout参数设置的时间内最大失败次数,如果在这个时间内所有 针对该服务器的请求都失败了,那么认为该服务器会被认为是停机了
fail_time 服务器会被认为停机的时间长度,默认为10s。
backup 标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里。
down 标记服务器永久停机了。
在轮询中,如果服务器down掉了,会自动剔除该服务器。
缺省配置就是轮询策略。
此策略适合服务器配置相当,无状态且短平快的服务使用。
upstream foo {
ip_hash;#负载均衡策略
server localhost:8001 weight=2; #权重
server localhost:8002;
server localhost:8003;
server localhost:8004 max_fails=3 fail_timeout=20s;
}
5、 nginx常用命令
windows
start nginx 启动nginx
nginx -s reload 热重启
nginx -s reopen 重启 Nginx
nginx -s stop 快速关闭
nginx -t 查看当前 Nginx配置
- linux