| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Nginx学习笔记 -> 正文阅读 |
|
[系统运维]Nginx学习笔记 |
1、安装Nginx1:去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本。 2:上传nginx到linux系统 3:安装依赖环境 ????????(1)安装gcc环境 ????????yum install gcc-c++ ????????(2)安装PCRE库,用于解析正则表达式 ????????yum install -y pcre pcre-devel ????????(3)zlib压缩和解压缩依赖 ????????yum install -y zlib zlib-devel ????????(4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https ????????yum install -y openssl openssl-devel 4. 解压,需要注意,解压后得到的是源码,源码需要编译后才能安装 ????????tar -zxvf nginx-1.16.1.tar.gz 5. 编译之前,先创建nginx临时目录,如果不创建,在启动nginx的过程中会报错 ????????mkdir /var/temp/nginx -p 6. 在nginx目录,输入如下命令进行配置,目的是为了创建makefile文件 ./configure \--prefix=/usr/local/nginx \--pid-path=/var/run/nginx/nginx.pid \--lock-path=/var/lock/nginx.lock \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--with-http_gzip_static_module \--http-client-body-temp-path=/var/temp/nginx/client \--http-proxy-temp-path=/var/temp/nginx/proxy \--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \--http-scgi-temp-path=/var/temp/nginx/scgi 7. make编译 ????????make 8. 安装 ????????make install 9. 进入sbin目录启动nginx ????????./nginx ? ? ? ?停止:./nginx -s stop ???????重新加载:./nginx -s reload 10. 打开浏览器,访问虚拟机所处内网ip即可打开nginx默认页面,显示如下便表示安装成功 注意事项: 1. 如果在云服务器安装,需要开启默认的nginx端口:80 2. 如果在虚拟机安装,需要关闭防火墙 3. 本地win或mac需要关闭防火墙 2、Nginx的Location匹配规则1. location分为正则和非正则。 ????????~和~*为正则location;=、^~、@和无任何前缀的都属于普通location 2.官网描述的匹配顺序 ????????1.先普通,再正则。 综上,常规的顺序是匹配完普通location,还要继续匹配正则location,但是,也可以告诉nginx,匹配到了普通location,就不要再搜索匹配正则location了,通过在普通location前面加上^~符号,^表示非,~表示正则,^~就是表示不要继续匹配正则。 除了^~,=也可阻止nginx继续匹配正则,区别在于^~依然遵循最大前缀匹配规则,而=是严格匹配。 3、Nginx 日志切割????????现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把 文件切割为多份不同的小文件作为日志,切割规则可以以 天 为单位,如果每天有几百G或者几个T的日志的话,则可以按需以 每半天 或者 每小时 对日志切割。 具体步骤如下: ? ? ? ? 手动方式切割: ????????1. 创建一个shell可执行文件: cut_my_log.sh ,内容为: ????????????????#!/bin/bash ????????????????LOG_PATH="/var/log/nginx/" ????????????????RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M) ????????????????PID=/var/run/nginx/nginx.pid ????????????????mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log ????????????????mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log ????????????????#向Nginx主进程发送信号,用于重新打开日志文件 ????????????????kill -USR1 `cat $PID` ????????2. 为 cut_my_log.sh 添加可执行的权限: chmod +x cut_my_log.sh ????????3. 测试日志切割后的结果: ./cut_my_log.sh ????????????????使用定时任务: ????????????????1. 安装定时任务: yum install crontabs ????????????????2. crontab -e 编辑并且添加一行新的任务: ????????????????????????*/1 * * * * /usr/local/nginx/sbin/cut_my_log.sh ????????????????3. 重启定时任务: service crond restart 4、Nginx 跨域配置支持????????#允许跨域请求的域,*代表所有 ????????????????add_header 'Access-Control-Allow-Origin' *; ????????#允许带上cookie请求 ????????????????add_header 'Access-Control-Allow-Credentials' 'true'; ????????#允许请求的方法,比如 GET/POST/PUT/DELETE ????????????????add_header 'Access-Control-Allow-Methods' *; ????????#允许请求的header ????????????????add_header 'Access-Control-Allow-Headers' *; 5、Nginx 负载均衡详解? ? ? ? 可以参考一下这篇文章: 6、Nginx 配置keepalived双机主备? ? ? ? 1.解压keepalived压缩包 ????????????????tar -zxvf keepalived-2.0.18.tar.gz ? ? ? ? 2.在keepalived目录,输入如下命令进行配置 ????????????????./configure --prefix=/usr/local/keepalived --sysconf=/etc ? ? ? ? ? ? ? ? 配置时报警告: ????????????????Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS ? ? ? ? ? ? ? ? 解决方法: ????????yum -y install libnl libnl-devel ????????????????yum install -y libnfnetlink-devel ? ? ? ? ? 3.重新执行步骤2 ? ? ? ? ? 4.安装keepalived ? ? ? ? ? ? ? ? make && make install ? ? ? ? ? 5.查看keepalived安装目录 ????????????????whereis keepalived ? ? ? ? ? ? ? ? 如下图所示: ???????????????? ? ? ? ? 6.进入/etc/keepalived,修改vi keepalived.conf 修改为下面内容: global_defs { vrrp_instance VI_1 { 备注:需要修改的地方已经标成红色 验证是否配置成功: ? ? ? ? 1.启动keepalived ? ? ? ? ? ? ? ? 进入keepalived安装目录,输入命令? ./keepalived ? ? ? ? 2.查看虚拟IP是否绑定成功 ? ? ? ? ? ? ? ? 输入 ip addr 命令查看ip ? ? ? ? ? ? ?? ? ? ? ? 3.访问虚拟IP 使用配置的虚拟ip能正常访问,验证成功。 ? ? ? ? 4.配置keepalived为系统服务,进入keepalived源文件目录。 ????????????????cp init.d/keepalived /etc/init.d/ 7、keepalived 配置Nginx自动重启? ? ? ? 当nginx服务挂掉之后,keepalived服务正常运行的情况下,通过虚拟IP访问,页面会报错,并不会跳转到备用Nginx服务上去,所以一般使用keepalived执行脚本让Nginx自动重启,如果重启失败,停止本机keepalived服务,这时请求就会跳转到备用nginx服务上了。 ? ? ? ? 1.编写重启脚本文件 ????????vim /etc/keepalived/check_nginx_alive_or_not.sh ? ? ? ? 内容如下: ????????#!/bin/bash ????????A=`ps -C nginx --no-header |wc -l` ????????# 判断nginx是否宕机,如果宕机了,尝试重启 ????????if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx? #这个目录文件为nginx启动文件 ????????# 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机 ????????sleep 3 ????????????????if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then ????????????????????????killall keepalived ????????????????fi ????????fi ? ? ? ? 2.给文件增加权限 ????????chmod +x /etc/keepalived/check_nginx_alive_or_not.sh ? ? ? ? 3.配置keepalived监听nginx脚本: ????????vrrp_script check_nginx_alive { ????????????????script "/etc/keepalived/check_nginx_alive_or_not.sh" ????????????????interval 2 # 每隔两秒运行上一行脚本 ????????????????weight 10 # 如果脚本运行失败,则升级权重+10 ????????} ? ? ? ? 4.在 vrrp_instance 中新增监控的脚本(重要) ? ? ? ? ? ? ? ?track_script { ????????????????check_nginx_alive # 追踪 nginx 脚本 ????????????????} ???????????????? ? ? ? ? ? 5.重启Keepalived使得配置文件生效 ????????????????systemctl restart keepalived ? ? ? ? 6.验证结果: ????????????????当手动关闭nginx服务后使用虚拟IP访问如果还能正常访问,那么验证通过。 6、keepalived 配置Nginx双主热备? ? ? ? 如果配置keepalived双机热备,如果MASTER节点不出问题,BACKUP节点就不会工作,就会有一个资源浪费的问题。所以引出keepalived配置Nginx双主热备方案。一句话总结:两台主机,互相是对方的备份机(BACKUP节点),又互相是对方的主机(MASTER节点)。 ? ? ? ? 配置步骤: ? ? ? ? ? ? ? ? 1.复制keepalived配置文件中实例。参考如下:? ? ? ? vrrp_instance VI_2 { ???????? ???????????????? ???????????????? ???????? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 7:53:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |