1.概述
xx
2.nginx安装
2.1.解压opt的包到soft目录
2.2.安装依赖
2.2.1编译
编译失败,缺少组件,要安装gcc
2.2.2继续编译
2.2.3再执行编译
2.2.4再执行编译
[root@localhost nginx-1.21.6]# ./configure --prefix=/user/local/nginx
编译ok
2.2.5执行make
2.2.6执行make install
2.2.7安装成功
在编译的目录下生成了nginx目录
2.3.nginx启动
命令(进入到nginx编译的目录): ./nginx 启动 ./nginx –s stop 快速停止 ./nginx –s quit 优雅关闭,关闭前完成已经接收的连接请求 ./nginx –s reload 重新加载配置
2.3.1启动
2.3.2关闭防火墙
2.3.3验证
浏览器输入IP地址回车
2.4.nginx安装成系统服务
2.4.1文件配置
1.编辑文件
vi /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/user/local/nginx/logs/nginx.pid
ExecStartPre=/user/local/nginx/sbin/nginx -t -c /user/local/nginx/conf/nginx.conf
ExecStart=/user/local/nginx/sbin/nginx -c /user/local/nginx/conf/nginx.conf
ExecReload=/user/local/nginx/sbin/nginx -s reload
ExecStop=/user/local/nginx/sbin/nginx -s stop
ExecQuit=/user/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
2.重新加载系统服务
systemctl daemon-reload
3.验证
2.4.2卡机启动nginx
systemctl enable nginx.service
3.nginx操作
3.1.不同端口号,访问不同地址
两个文件夹下都有index.html,访问nginx时,不同端口号,访问不同index.html
- 修改conf目录下的nginx.conf(是编译的目录,不是安装目录 。/user/local/nginx/conf)
- 修改完重启nginx: systemctl reload nginx
3.2.多个域名访问一个地址
- 完整的两个域名地址 ,中间空格隔开
- 可以模糊域名匹配。如:*.xxxx
3.3.onf有有个server配置
优先匹配前面的server,前面匹配完不再往下
4.正向代理和反向代理
4.1.正向代理
流程:用户->网关->服务器。 用户无法访问服务器,而使用了网关代理服务器。 正向代理隐藏了真实的客户端。
4.2.反向代理
流程:用户->网关->服务器。 服务器向用户隐藏了真实的服务器。
4.3.nginx反向代理
修改nginx.conf文件,添加prox_pass配置 在页面输入我的服务器地址后,自动跳转到proxy_pass的地址,而且浏览器地址栏显示的是我的地址。 注意:地址不能是https开头(需要有其它配置),否则,地址栏显示的是真实的访问地址。
5.负载均衡
在conf文件配置 upstream 输入nginx服务器地址,页面轮流访问upstream的两个网站
5.1.负载均衡策略
1.权重:按照权重进行分配访问频率 2.其它
6.配置防火墙只能通过nginx服务器访问应用服务器
7.Referer防盗链
7.1 盗链
盗链是指服务提供商不提供服务内容,而是通过技术手段绕过限制,直接向终端用户提供其他服务提供商的内容,利益自己独享,代价却由其他服务提供商承担的一种恶意行为。 盗链会大量消耗被盗链网站的带宽,使该网站付出巨额的成本,却得不到任何回报。 Refer防盗链:Referer是http一个标记,它会告诉服务器该网页是从哪里来的,通过设置Referer黑白名单来防止被盗链。
7.2 nginx配置防盗链
在conf文件的location(任意个都行)配置valid_referers none属性:不添加即使不盗链也无法直接访问,添加后如果不是盗链,输入地址可访问
7.3 返回指定错误页面
在html下添加页面,在conf文件配置error_page(这个可以配置多个),通过返回的状态码,找到指定错误页面
7.4 返回指定图片
通过rewrite实现
8.nginx高可用
8.1 原理
nginx1为主服务器,nginx2为备服务器,当nginx1挂了,nginx2顶上,但是连个ip不一致,导致界面无法访问,因此,需要虚拟出一个ip。 Keepalive可以实现,虚拟出一个vip,用户通过vip都可以连接两台服务器,并实现监控两个服务器的可用性,nginx1挂了,访问vip时自动访问到nginx2。
8.2 keepalive安装配置
两台机器都安装。 执行命令:yum install -y keepalived 配置文件位置:
8.2.1 主服务器配置
``` ! Configuration File for keepalived
global_defs {
router_id lbs138 }
vrrp_instance xie001 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.146.200 } }
``` 注意:192.168.146.200 是vip,ens33是网卡名称。 验证是否启动正常: 输入ip addr出现虚拟ip地址
8.2.2 备用服务器配置
启动后,因为主服务器还存活,ip addr命令还不会显示200的ip地址。
8.3 测试
- 在windows上ping 200
- 关掉主机 出现一次超时后,访问又很快正常了,同时备机输入ip addr出现了200的vip地址。