chrony时间服务器,rsyslog日志服务器,sudo用法,nginx模块详解

(1)chrony时间服务器

配置文件:/etc/chrony
	server:指明时间服务器地址
	allow:提供给指定ip范围内的主机同步时间
	allow all :允许所有客户端主机
	deny:拒绝指定访问的ip
	deny all :拒绝所有客户端
	bindcmdaddress:命令端接口监听的地址
	local startum 10 :即是自己未能通过网络时间服务器同步到时间,也允许将本地时间作为标准时间授权给其他客户端

开始配置chrony服务器:
服务端:vim /etc/chrony.conf 
	# Please consider joining the pool (http://www.pool.ntp.org/join.html)
		server ntp6.aliyun.com iburst  # 阿里云的时间服务器地址
		server cn.ntp.org.cn iburst
		server ntp.shu.edu.cn iburst	

	# Allow NTP client access from local network.
		allow 192.168.0.0/16 #取消注释,允许同步时间的ip地址或网段
	
	启动服务: centos7 默认已经安装chrony服务
	[root@server ~]# systemctl start chronyd   
	[root@server ~]# systemctl enable chronyd  

	查看服务: 默认端口323
	[root@server  ~]# netstat -tnlpu|grep chronyd

客户端: vim /etc/chrony.conf 
	# Please consider joining the pool (http://www.pool.ntp.org/join.html) 
	server 10.117.20.221 iburst	 #填服务器地址
	
	[root@chrony ~]# systemctl start chronyd  

查看客户端的状态: 使用chronyc命令
在这里插入图片描述

(2)rsyslog日志服务

简介
 rsyslog特性:
		1.多线程
		2.协议:UDP,TCP,SSL,TLS,RELP
		3.存储日志信息于 mysql,PGsql,oracle  
		4.强大的过滤器,实现过滤日志信息中任何部分的内容
		5.自定义输出的内容

rsyslog日志收集器重要术语:
	1.facility:设施,从功能或程序上对日志收集进行分类
		auth,authpriv,cron,daemon,kern,lpr,mail,mark,news,security,suer,uucp,local0-local7,syslog
	2.priority:优先级,日志级别
		debug(调试),info,notice,warn(warning),err(error),crit(critical),alert,emerg(panic)

指定级别:
	* :所有级别
	none:没有级别
	priority:次级别高于次级别的所有级别
	=priority:仅此级别

程序环境:
	主程序:rsyslogd 
	主配置文件:/etc/rsyslog.conf ,/etc/rsyslog.d/*.conf 
	服务脚本(centos6):/etc/rc.d/init.d/rsyslog 
	unit file(centos7):/usr/lib/systemd/system/rsyslog.service 

开始配置日志服务器:

修改服务端:/etc/rsyslog.conf

	# Provides UDP syslog reception
	$ModLoad imudp      #取消这两行的注释
	$UDPServerRun 514 

	# Provides TCP syslog reception
	$ModLoad imtcp  	#取消这两行的注释
	$InputTCPServerRun 514
	
	systemctl start rsyslog #启动服务 

修改客户端: /etc/rsyslog.conf
	#### RULES ####
 	*.info;mail.none;authpriv.none;cron.none        @10.117.20.220 #填日志服务器ip
	
	systemctl start rsyslog #启动服务 
	
测试: 用客户端下载ntp服务进行测试,日志都在服务端主机/var/log/messages 

客户端:安装软件测试
在这里插入图片描述

查看记录: 红圈勾起来的就是刚才master主机,安装ntp的记录

在这里插入图片描述

使用mysql记录日志:

	[root@chrony ~]# yum -y install rsyslog-mysql  #安装msyql模块
	[root@chrony ~]# rpm -ql rsyslog-mysql  #查看生成的文件
	[root@chrony ~]# mysql </usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql   #导入数据库
	[root@chrony ~]# msyql  #打开mysql数据库
		MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'usyslog'@'localhost' IDENTIFIED BY 'psyslog'; 
			#创建用户usyslog,密码为psyslog,并授权能访问Syslog数据库当中的所有表
		MariaDB [(none)]> FLUSH  PRIVILEGES; 
			#刷新权限
		MariaDB [(none)]> EXIT  
			#退出mysql
			
	[root@chrony ~]# vim /etc/rsyslog.conf  
		#### MODULES ####
 		$ModLoad ommysql   #添加mysql模块
	
		#### RULES ####
		#*.info;mail.none;authpriv.none;cron.none      /var/log/messages
		*.info;mail.none;authpriv.none;cron.none       :ommysql:localhost,Syslog,usyslog,psyslog 
													#对应上面的参数:mysql模块:主机名,数据库名,用户,密码
	[root@chrony ~]#  systemctl restart rsyslog
	#重启完以后就可以到mysql数据库中,Syslog数据库中的SystemEvents表中查看日志记录

loganalyzer,web的方式查看日志: (下载)https://loganalyzer.adiscon.com/download/

	 [root@chrony ~]# tar xf loganalyzer-3.6.5.tar.gz  	#我这里是先下载到电脑,然后用上传到服务器
	 [root@chrony ~]# cd loganalyzer-3.6.5 		#进入到loganalyzer目录
	 [root@chrony  loganalyzer-3.6.5]# cp -r src/ /var/www/html/log/ 	#loganalyzer目录里面,只需要用的src目录,cp至网站发布目录下面
	 [root@chrony ~]# cd /var/www/html/log/ 	 #进入到log目录
	 [root@chrony  log]# touch config.php	 #创建php配置文件
	 [root@chrony  log]# chmod 666 config.php 	#首次配置需要权限
	 [root@chrony  log]# systemctl restart httpd #重启服务
	 [root@chrony  log]# chmod 644 config.php 	#首次配置完以后执行,关闭读写权限

在这里插入图片描述

(3)sudo用法

visudo命令:专门用来编辑/etc/sudoers

sudo -l  #查看用户自身权限
sudo -k #清除登录缓存,

配置文件:/etc/sudoers

	##Allow root to run any commands anywhere   #找到这一行,在下面定义用户及权限
		like    ALL=(ALL)   NOPASSWD:ALL, !/bin/su, !/usr/bin/passwd root, !/usr/bin/visudo
	
	#说明:用户为like,拥有所有权限,使用sudo的时候不用输入自身密码,但这些命令,su,passwd,visudo,不能使用sudo来使用:
	
	#说明: sudo su - root #这样不用输入root密码,就能直接切户至root用户
		 sudo passwd root #可以直接修改root密码
		 sudo visudo  #可以直接编辑配置文件,进行修改里面的内容

配置文件图:
在这里插入图片描述
查看like用户的权限:

在这里插入图片描述
测试like用户权限: 在这里插入图片描述

定义别名:
在这里插入图片描述
查看定义的test用户权限:
在这里插入图片描述

nginx模块,配置文件详解

	main配置段常见的配置指令:
		分类:
			正常运行必备的配置
			优化性能的相关配置
			用于调试及定位问题相关的配置
			事件驱动相关的配置
	
	正常运行必备的配置:
		1. user 
			Syntax: user user[group]
			Default: user nobody nobody;
			Context: main 

		2. pid /path/to/pid_file 
			指定存储nginx主进程进程号码的文件路径

		3. include file |mask
			指明包含进来的其他配置文件片段
		
		4.load_module file 
			指明要装载的动态模块

	性能优化相关的配置:
		1. worker_processes number |auto;
			worker进程的数量;通常应该等于当前主机的cpu物理核心数
			auto:当前主机物理cpu核心数

		2. worker_cpu_affinity 0001 0010 0100 1000 ;
			worker_cpu_affinity auto;
			
				CPU MASK;
					列如:四核cpu 
					0001 : 0号cpu
					0010 : 1号cpu
					0100 : 2号cpu
					1000 : 3号cpu

		3. worker_priority number;
			指定worker进程的nice值,设定worker进程的优先级[-20,20]		

		4.worker_rlimit_nofile number; 
			所有worker进程所能打开的文件数量上限,比如:4*1024

	调试,定位问题:
		1. daemon on|off;
			是否以守护进程方式运行nginx

		2. master_process on|off;
			是否以master/worker模型运行nginx;默认为on 


	事件驱动相关配置:
		events{
			.....
		}

		1. worker_connections 1024;  #必须配置
			每个worker进程所能够打开的最大并发连接数据

		2. use epoll;
			指明并发连接请求的处理方法

		3.accept_mutex on|off;
			处理新的连接请求的方法,on意味者由各worker轮流处理新请求,off意味着每个新请求的到达都会通知所有的worker进程



	http协议相关的配置结构
		
	http {
		...... 

	
		server {
			
			listen address:port |port   
			server_name  server_name 
			root   /path/to/doucment_root
	
	}

	1. listen port ;
		default_server :设定默认主机
		ssl:限制仅能通过ssl连接提供服务
		backlog=number:后援队列长度
		rcvbuf=size:接受缓冲器大小
		sndbuf=seize:发送缓冲区大小


	2. server_name name ......;	
		指明虚拟主机的主机名称;后面可跟多个由空白字符隔开的字符串
			支持*通配任意长度的任意字符;server_name www.test.com *.test.com www.test.*

			匹配机制:
				1.首先是字符串精确匹配
				2.左侧*通配符
				3.右侧*通配符 

	3.root path ;
		设置web资源路径映射,用户指明用户请求的url所对应的本地系统上的文档在目录路径,

	4.location [=|~|~*|^~|] url  {....} 
		在一个server中location配置段可以有多个,用户实现从url到文件系统的路径映射,nginx会根据用户的请求的url来检查定义的所有的location
		并找出一个最佳匹配,而后应用其配置

		= :对url做精确匹配 列如:只匹配www.test.com/ ,不匹配:www.test.com/index.html 
	 	~ :对url做正常表达式模式匹配:区分字符大小写
		~* :对url做正则表达式模式匹配,不区分字符大小写
		^~ :对url的左半部分做匹配检查,不去分字符大小写

		匹配优先级: =, ^~, ~/ ~*, /

	实列:
		server {
		listen 80;
		server_name www.ilinux.io;
		root /data/nginx/vhost1/;
		
		location / {
			root /data/nginx/vhost2/;  #如果location中定义了root,server中的root就被覆盖了
			allow all ;
		}	

		location ^~ /images/ {
			root /data/nginx/vhost2/; #这里定义的location ^~ 优先级高于上面的location /
			deny all;
		}

		location ~* \.(jpg|png)$ {  #192.168.1.111主机不能访问.jpg|png结尾的文件,但是可以访问其他资源
			deny 192.168.1.111;
			allow all;
		}
	}

	5.alias path;
		定义路径别名,文档映射的另一种机制,仅能用户location上下文

		注意:location中使用root指令和alias指令的意义不同
			root,给定的路径对应于location中的/usr/左侧的/ 
			alias,给定的路径对应于location中的/usr/右侧的/

 	6. index file...;
	 	默认资源:http,server,location 

	7.error_page code :
		自定错误状态页
		error_page 404 =200 /notfound.html;
			location = /notfound.thml {
				root /data/nginx/error_pages;
			}

定义客户端请求的相关配置:

	8. keepalive_timeout timeout ;
		设定保护连接超时时长,0表示禁止长连接,默认为75  (关键)

	9. keepalive_request number ;
		在一次连接上所允许请求的资源的最大数量,默认为100   (关键)

	10.keepalive_disable none |browser ;
		对哪种浏览器禁用长连接

	11. send_timeout time ;
		向客户端发送响应报文的超时时长,此处,是指两次写操作之间的时隔时长;

	12.client_body_buffer_size seize:
		用于接收客户端请求的报文body部分的缓冲区大小,默认为16k,超出此大小时,其将被暂时存到磁盘上的client_body_temp_path指令所定义的位置

	13. client_body_temp_path  path [level1 level2 level3 ]
		用于设定与存储客户端请求报文的body部分的临时存储路径及子目录结构的数量

	 		16进制的数字:
			 	client_body_temp_path /var/tmp/client_body 2 1 1
					2:表示256个一级子目录  16^2
					1:表示16个二级子目录
					1:表示16个三级子目录

	14. ngx_http_access_module模块:
		实现基于ip的访问控制功能
	
		allow address |all ;
		deny address |all ;
	
	15.ngx_http_auth_basic_module模块:
		 location ~* /admin {
              auth_basic "enter admin passwd";  #提示符
              auth_basic_user_file /etc/nginx/.ngpasswd;  #用户文件路径,
		 }

	注意:htpasswd命令由httpd-tools提供 yum -y install httpd-tools 
		[root@localhost ]htpasswd  -c -m /etc/nginx/.ngpasswd test_user

	16. ngx_http_stub_status_module模块:
		用户输出nginx的基本状态信息

		location /ngxstatus {
            stub_status ;
    	}   

		[root@centos7 ~]#curl http://www.ilinux.io/ngxstatus
		Active connections: 3 
		server accepts handled requests
		72 72 150 
		Reading: 0 Writing: 1 Waiting: 2 

		active connections:活动状态的连接数
		accept:已经接受的客户端请求的总数
		handed:已经处理完的客户端请求的总数
		request:客户端发来的总的请求数
		reading:处于读取客户端请求报文首部的连接的连接数
		warting:处于向客户端发送响应报文过程中的连接数
		waiting:处于等待客户端发出请求的空闲连接数


	17.ngx_http_log module模块:
		
		(1)ngx_format name string...;
			string可以使用nginx核心模块及其他模块内嵌的变量
		
		(2)access_log path [format buffer=size] [gzip=level] [flush=time][if=condition];
		   access_off ;

			access_log /var/log/nginx/vhost1_ssl_access.log main ;
			访问日志文件路径,格式及相关的缓冲的配置
				buffer=size 
				flush=time

		(3)open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
		   open_log_file_cache off;
			缓存日志文件相关的元数据信息

			max:缓存的最大文件描述符数量
			min_uses:在inactive指定的时长访问大于等于此值方可被当作活动项
			inactive:非活动时长
			valid:验证缓冲中各缓存项是否为活动项的时间间隔

		
		18.ngx_http_gzip_module:

			(1)gzip on|off;   #定义时放在http中对所有server都生效,也可单独放在location中
				是否启用压缩

			(2)gzip_comp_level level;
				指定压缩级别:默认1, 一般可以设置为6

			(3)gzip_types mime_type;
				压缩过滤器,仅对此定义的mime类型的内容启用压缩功能

			(4)gzip_buffers number size;
				支持实现压缩功能时为其配置的缓冲区数量及每个缓存区的大小

			(5)gzip_proxied off |expired |no-cache|no_store|private|no_last_modified|no_etag|auth|any;
				nginx作为代理服务器接收到从被代理服务器发送的响应报文后,在任何钟条件下启用压缩功能的
					off:对代理的请求不启用
					no-cache,no-store,private :表示从被代理服务器收到的响应报文首部的cache-control的值为此三者任何一个,测启用压缩功能

		19.ngx_http_ssl_module 模块:
			(1)ssl on |off 

			(2)ssl_certificate file;
				当前虚拟主机使用PEM格式的证书文件

			(3)ssl_certificate_key file;
				当前虚拟主机上与其证书匹配的私钥文件

			(4)ssl_protocols sslv2 sslv3 tlsv1 tlsv1.1 tlsv1.2 ;
				支持ssl协议版本,默认为后三个

			(5)ssl_session_cache off|none|builtin[:size] [shared:name:size]			
				builtin[:size]:使用openssl内建的缓存,此缓存为每worker进程私有
				[shared:name:size]:在各worker之间使用一个共享的缓存

			(6)ssl_session_timeout time;
				客户端一侧的连接可以复用 ssl session cache中缓存的ssl参数的有效时长

		nginx虚拟主机: 
			1. 在/etc/nginx/nginx.conf添加 include conf.d/*.conf;  #表示配置文件在 conf.d/ 目录下
			2. 添加虚拟主机: vim /etc/nginx/conf.d/vhost1.conf 
				server {
				listen 443 ssl; 
				server_name www.ilinux.com;
				root /data/nginx/vhost1;
				ssl on;
				ssl_certificate /etc/nginx/ssl/nginx.crt ;
				ssl_certificate_key /etc/nginx/ssl/nginx.key;
				ssl_session_cache shared:SSL:1m;
					
				}


		 20.ngx_http_rewrite_module模块: 放在server中
			(1) rewrite regex replacement [flag];
				将用户请求的URL基于regex所描述的模式进行检查,匹配到时将其替换为replacement指定的新的URL;
			
			rewrite /(.*)\.png$ http://www.lixuan928.xyz/$1.jpg;  #把所有.png格式的重写为.jpg 
			rewrite /(.*)$ https://www.lixuan928.xyz/$1;  #把所有访问都重写到https
			rewrite /(.*)\.png$ /$1.jpg redirect; #返回重定状态码 302

			注意:如果在同一级配置块中存在多个rewrite规则,那么会自上而下追个检查,被某条件规则替换完成后,会重新一轮的替换检查,因此,隐含循环机制;
				 [flag]所表示的标志位用于控制此循环机制

				 如果replacement是以http://或https://开头,则替换结果会直接以重定向返回给客户端;
				 	301:永久重定向

			[flag]
				last:重写完成后停止对当前URL在当前location中后续的其他重写操作,而后对新的URL启动新一轮重写检查,提前重启新一轮循环;
				break:重写完成后停止对当前URL在当前location中后续的其他重写操作,而后直接跳转至重写规则配置块之后的其它配置,结束循环
				redirect:重写完成后以临时重定向方式直接返回重写后生成的新URL给客户端,由客户端重新发起请求,不能以http://或https://开头;
				permanent:重新完成后以永久重定向方式直接返回重写后生成的新URL给客户端,由客户端重新发起请求;

			(2)return 
				return code [text];
				return code URL;
				return URL;

			(3)rewrite_log on|off;
				是否开启重新日志

			(4)if (condition) {...}
				引入一个新的配置上下文,条件满足时,执行配置块中的配置指令 server location

					condition:
						比较操作符:
							== :等于
							!= :不等于
							~ :模式匹配,区分字符大小写
							~* :模式匹配,不区分字符大小写
							!~ :模式不匹配,区分字符大小写
							!~* :模式不匹配,不区分字符大小写

						文件及目录存在新判断:
							-e ,!-e  :是否存在(文件|目标|软连接)
							-f ,!-f  :文件
							-d ,!-d  :目录
							-x ,!-x  :执行


			(5)set $variable value 
			  用户指定要变量

		21.ngx_referer_module 模块  #防止非法引用
			(1)valid_referers none |blocked |server_names|string...;
				定义referer首部的合法可用值
						
				none:请求报文首部没有referer首部
				blocked:请求报文的referer首部没有值
				server_names:参数,其可以有值作为主机名或主机名模式
					arbitrary_string:直接字符串,但可使用*作通配符
					regular expression:被指定的正则表达式模式匹配的字符串;要使用~打头,列如~.*\.magedu\.com; 

			配置实列:
				valid_referers none blocked server_names *.test.com test.* ~\.test\.;
					if($invalid_referer){
					return https://www.test.com/ ;   #return到自己的网站
					return 405;  #return一个状态码
				}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值