目录
nginx服务开启之后,在网页访问时,按F12键,就可以看到nginx的版本号,这样安全性不够高,我们可以通过隐藏版本号或者修改版本名称来进行提高安全性。
- vim /usr/local/nginx/conf/nginx.conf
- http {
- include mime.types;
- default_type application/octet-stream;
- server_tokens off; #添加,关闭版本号
- ......
- }
-
- systemctl restart nginx #重启服务
- curl -I http://192.168.88.88 #查看版本号
- vim /opt/nginx-1.12.2/src/core/nginx.h
- 12 #define nginx_version 1012002
- 13 #define NGINX_VERSION "9.9.9" #安装的版本号
- 14 #define NGINX_VER "nginx/" NGINX_VERSION #修改服务器类型
-
- cd /opt/nginx-1.12.0/
- ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module #检查环境,设置目录,模块
- make #编译(不用安装,安装的话,会将以前的全部覆盖到)
-
- mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old #备份以前的nginx
- cp objs/nginx /usr/local/nginx/sbin/ #复制新编译的
- systemctl restart nginx #重启服务
修改配置文件
进行检查环境,设置模块,进行编译
将编译的nginx复制到安装路径中,修改nginx的配置文件
查看版本信息
通过网页查看版本信息
- vim /usr/local/nginx/conf/nginx.conf
- user nginx nginx;
-
- systemctl restart nginx
-
- ps aux |grep nginx #主进程由root创建,子进程由nginx创建
缓存时间表示,当客户端访问nginx服务器时,可以设置缓存时间,假如设置了1天。表示客户端再一天内访问该页面,将不会再向nginx服务器发送连接请求,而是直接从自己的缓存中读取就行,超过一天,就需要重新申请连接,可以设置天,时,分等。
- vim /usr/local/nginx/conf/nginx.conf
- http {
- ......
- server {
- ......
- location / {
- root html;
- index index.html index.htm;
- }
-
- location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { #加入新的 location,以图片作为缓存对象
- root html;
- expires 1d; #指定缓存时间,1天
- }
- ......
- }
- }
进入配置文件进行修改,添加location,包含图片结尾的格式都可识别。
网页验证访问
Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。
date命令
date :可查看系统的当前时间
date -s 【时间】 :可以修改系统的时间
- vim /opt/fenge.sh
-
-
- #!/bin/bash
- # Filename:fenge.sh
- d=$(date -d "-1 day" "+%Y%m%d")
- logs_path="/var/log/nginx"
- pid_path="/usr/local/nginx/logs/nginx.pid"
- [ -d $logs_path ] || mkdir -p $logs_path
- mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d
- kill -HUP $(cat $pid_path) ****************************************
- find $logs_path -mtime +30 | xargs rm -rf
设置成周期性任务,日志将会不断累加。超过30天的会被删除
keepalive_timeout(tcp连接三次握手的超时时间)
client_header_timeout(客户端请求头的超时时间)
clent_body_timeout(客户端请求体的超时时间)
- vim /usr/local/nginx/conf/nginx.conf
- http {
- ......
- keepalive_timeout 65 180; #指定每个tcp连接超时时间内65秒
- client_header_timeout 80; #请求头的超时时间为80秒
- client_body_timeout 80; #请求体的超时时间为80秒
- ......
- }
-
- systemctl restart nginx
网页查看超时时间
在高并发场景,需要启动更多的nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
- cat /proc/cpuinfo |grep -c "physical id" #查看cpu核数
- ps aux |grep nginx #查看nginx主进程中包含几个子进程
-
- vim /usr/local/nginx/conf/nginx.conf
- worker_processes 2; #修改为核数相同或者2倍
- worker_cpu_affinity 01 10; #设置每个进程由不同cpu处理,进程数配为4时0001 0010 0100 1000
-
- systemctl restart nginx #重启nginx服务
创建工作进程
查看进程数
- vim /usr/local/nginx/conf/nginx.conf
- http {
- ......
- gzip on; #取消注释,开启gzip压缩功能
- gzip_min_length 1k; #最小压缩文件大小
- gzip_buffers 4 64k; #压缩缓冲区,大小为4个64k缓冲区
- gzip_http_version 1.1; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
- gzip_comp_level 6; #压缩比率
- gzip_vary on; #支持前端缓存服务器存储压缩页面
- gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json; #压缩类型,表示哪些网页文档启用压缩功能
- ......
- }
- cd /usr/local/nginx/html
- #先将12.jpg文件传到/usr/local/nginx/html目录下
- vim index.html
- ......
- <img src="game.jpg"/> #网页中插入图片
- </body>
- </html>