Nginx基础使用

1.目录结构

进入Nginx的主目录我们可以看到这些文件夹
其中这几个文件夹在刚安装后是没有的,主要用来存放运行过程中的临时文件
conf
用来存放配置文件相关
html
用来存放静态文件的默认目录 html、css等
sbin
nginx的主程序


 
2.配置

server {
  listen 80; 监听端口号
  server_name localhost; 主机名
  location / { 匹配路径
     root html; 文件根目录
     index index.html index.htm; 默认页名称
  }
  error_page 500 502 503 504 /50x.html; 报错编码对应页面
  location = /50x.html {
     root html; 
  }
}

        2.1servername匹配规则

                完整匹配

server_name vod.mmban.com www1.mmban.com;

                通配符匹配

server_name *.mmban.com

                通配符结束匹配

server_name vod.*;

                正则匹配

server_name ~^[0-9]+\.mmban\.com$;

3.反向代理

location / {
  proxy_pass http://atguigu.com/;
}

4.weight(权重)

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream httpd {
  server 127.0.0.1:8050 weight=10 down;
  server 127.0.0.1:8060 weight=1;
  server 127.0.0.1:8060 weight=1 backup;
}
 
 
down:表示当前的server暂时不参与负载
weight:默认为1.weight越大,负载的权重就越大。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器

5.ip_hash        根据客户端的ip地址转发同一台服务器,可以保持回话。

6.least_conn        最少连接访问

7.url_hash        根据用户访问的url定向转发请求

8.fair        根据后端服务器响应时间转发请求

9.动静分离

location / {
  proxy_pass http://127.0.0.1:8080;
  root html;
  index index.html index.htm;
}
 
location /css {
  root /usr/local/nginx/static;
  index index.html index.htm;
}
location /images {
  root /usr/local/nginx/static;
  index index.html index.htm;
}
location /js {
  root /usr/local/nginx/static;
  index index.html index.htm;
}


或者

location ~*/(css|img|js) {
  root /usr/local/nginx/static;
  index index.html index.htm;
}

使用正则
location 前缀
/ 通用匹配,任何请求都会匹配到。
= 精准匹配,不是以指定模式开头
~ 正则匹配,区分大小写
~* 正则匹配,不区分大小写
^~ 非正则匹配,匹配以指定模式开头的location
 
location匹配顺序
多个正则location直接按书写顺序匹配,成功后就不会继续往后面匹配
普通(非正则)location会一直往下,直到找到匹配度最高的(最大前缀匹配)
当普通location与正则location同时存在,如果正则匹配成功,则不会再执行普通匹配
 

        9.1 alias与root

        

location /css {
  alias /usr/local/nginx/static/css;
  index index.html index.htm;
} 

root用来设置根目录,而alias在接受请求的时候在路径上不会加上location。
1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的; 2)root指定
的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的; 3)使用
alias标签的目录块中不能使用rewrite的break(具体原因不明);另外,alias指定的目录后面必须要加上"/"符
号!! 4)alias虚拟目录配置中,location匹配的path目录如果后面不带"/",那么访问的url地址中这个path目录后
面加不加"/"不影响访问,访问时它会自动加上"/"; 但是如果location匹配的path目录后面加上"/",那么访问的url地
址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败! 5)root目录配置
中,location匹配的path目录后面带不带"/",都不会影响访问。

10.UrlRewrite

 rewrite ^/([0-9]+).html$ /index.jsp?pageNum=$1 break;

rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,
重定向到replacement,结尾是flag标记。
rewrite <regex> <replacement> [flag];
关键字 正则 替代内容 flag标记
关键字:其中关键字error_log不能改变
正则:perl兼容正则表达式语句进行规则匹配
替代内容:将正则匹配的内容替换成replacement
flag标记:rewrite支持的flag标记
rewrite参数的标签段位置:
server,location,if
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

11.防盗链配置

valid_referers 192.168.44.101;
    if ($invalid_referer) {
    return 403;
}

valid_referers none | blocked | server_names | strings ....;
 
none, 检测 Referer 头域不存在的情况。
blocked,检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。这种情况该头域的值不以
“http://” 或 “https://” 开头。
server_names ,设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一个。

12.高可用配置

安装依赖
yum install openssl-devel

使用./configure 编译安装,或者yum install keepalived

使用yum安装后配置文件在
/etc/keepalived/keepalived.conf
 

第一台机器
! Configuration File for keepalived
global_defs {
router_id lb111
}
vrrp_instance atguigu {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.44.200
}
}
第二台机器
! Configuration File for keepalived
global_defs {
router_id lb110
}
vrrp_instance atguigu {
state BACKUP
interface ens33
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.44.200
}
}
启动服务
systemctl start keepalived

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值