
(一) 修改配置文件方式




修改源码文件,重新编译安装
- [root@ngnix nginx-1.26.1]# cd /usr/local/nginx/conf
- [root@ngnix conf]# ls
- fastcgi.conf koi-utf nginx.conf uwsgi_params
- fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default
- fastcgi_params mime.types scgi_params win-utf
- fastcgi_params.default mime.types.default scgi_params.default
- [root@ngnix conf]# vim nginx.conf
- server_tokens on; #打开显示版本号
- [root@ngnix conf]# systemctl restart nginx
- [root@ngnix conf]# curl -I http://192.168.80.30
- HTTP/1.1 200 OK
- Server: apache/2.48.0
- Date: Sun, 02 Jun 2024 05:13:40 GMT
- Content-Type: text/html; charset=utf-8
![]()



2.更改程序运行用户与组修改Nginx用户与组


(1)编译安装时指定用户与组
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install # --user指定用户, --group指定组

(2)修改配置文件法指定
- [root@ngnix conf]# vim nginx.conf
- [root@ngnix conf]# systemctl restart nginx.service
- [root@ngnix conf]# ps aux | grep nginx
- root 5518 0.0 0.0 46008 1164 ? Ss 13:34 0:00 nginx: master process /usr/local/nginx/sbin/nginx
- nginx 5520 0.0 0.0 48484 2000 ? S 13:34 0:00 nginx: worker process
- root 5524 0.0 0.0 112824 988 pts/0 R+ 13:34 0:00 grep --color=auto nginx


http段:实现对所有虚拟主机站点网页进行缓存;
server段:实现对某一个虚拟主机的一个站点中所有网页进行缓存;
location段:实现对某一个虚拟主机的某个指定访问路径进行缓存;
- [root@ngnix conf]# vim nginx.conf
- [root@ngnix conf]# nginx -t
- nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
- nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
- [root@ngnix conf]# systemctl reload nginx
- [root@ngnix conf]# cd /usr/local/nginx/html/
- http {
- ......
- server {
- ......
- location / {
- root html;
- index index.html index.htm;
- }
-
- location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { #加入新的 location,以图片作为缓存对象
- root html;
- expires 1d; #指定缓存时间,1天
- }
- ......
- }
- }
- http://www.xy101.com/dingzhen.html




- #!/bin/bash
- #this is used for cutting nginx log files
-
-
- YESTERDAY=$(DATE -D "-1 day" "+%Y%m%d")
- LOGPATH=/var/log/nginx
-
- NGINX_HOME=/usr/local/nginx
- PIDPATH=$NGINX_HOME/logs/nginx.conf
-
- #使用test -d判断专门保存日志的目录是否存在,如果不存在则创建目录
- test -d $LOGPATH || mkdir -p $LOGPATH
-
- #使用mv命令进行日志分制,移动日志文件到专门保存日志的目录里,并在文件名后缀添加时间标记
- mv $NGINX_HOME/logs/access.log $LOGPATH/access.log_$YESTERDAY
- mv $NGINX_HOME/logs/access.log $LOGPATH/ERROR.log_$YESTERDAY
-
- #使用kill -USR1 使nginx生成新的日志文件,用于后续的日志记录
- kill -USR1 $(cat $PIDPATH)
-
- #使用find -mtime 选项查找出超过N天以前的旧日志文件并删除,用来释放磁盘空间
- find $LOGPATH -mtime +90 -delete




HTTP有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态。若接收到来自同一客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接。
KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能。
keepalive_timeout
指定KeepAlive的超时时间(timeout)。指定一个长连接最多可以保持多长时间,服务器将会在这个时间后关闭连接。 Nginx的默认值是65秒,有些浏览器最多只保持 60 秒,所以可以设定为 60 秒。若将它设置为0,就禁止了keepalive 连接。
第二个参数(可选的)指定了在响应头Keep-Alive:timeout=time中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必去关闭连接了。没有这个参数,Nginx 不会发送 Keep-Alive 响应头。
client_header_timeout
客户端向服务端发送一个完整的 request header 的超时时间。如果客户端在指定时间内没有发送一个完整的 request header,Nginx 返回 HTTP 408(Request Timed Out)。
client_body_timeout
指定客户端与服务端建立连接后发送 request body 的超时时间。如果客户端在指定时间内没有发送任何内容,Nginx 返回 HTTP 408(Request Timed Out)。

- vim /usr/local/nginx/conf/nginx.conf
- http {
- ......
- keepalive_timeout 65 55;第一个65代表服务器端主动断开连接保持时间,第二个55代表客户端主动断开连接保持时间
- keepalive_requests 100;
- client_header_timeout 80;
- client_body_timeout 80;
- ......
- }
-
- systemctl restart nginx




- vim /usr/local/nginx/conf/nginx.conf
- [root@ngnix conf]# vim nginx.conf
-
- ngixnworker_processes auto;
- worker_cpu_affinity 01 10; #为进程绑定两个cpu
- [root@ngnix conf]# systemctl restart nginx.service
- [root@ngnix conf]# ps aux | grep ngixn
- root 6903 0.0 0.0 112824 988 pts/0 S+ 15:38 0:00 grep --color=auto

- [root@ngnix usr]# cd /opt/nginx-1.26.1/
- [root@ngnix nginx-1.26.1]# ls
- auto CHANGES.ru configure html Makefile objs src
- CHANGES conf contrib LICENSE man README
- [root@ngnix nginx-1.26.1]# cd auto/
- [root@ngnix auto]# ls
- cc feature headers install module options stubs types
- define have include lib modules os summary unix
- endianness have_headers init make nohave sources threads
- [root@ngnix auto]# cat options | grep YES
- HTTP=YES
- HTTP_CACHE=YES
- HTTP_CHARSET=YES
- HTTP_GZIP=YES
- HTTP_SSI=YES
- HTTP_ACCESS=YES


- [root@ngnix nginx-1.26.1]# cd /usr/local/nginx/conf
- [root@ngnix conf]# pwd
- /usr/local/nginx/conf
- [root@ngnix conf]# vim nginx.conf
-
- 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 image/jpg image/png test/html; #压缩类型,表示哪些网页文档启用压缩功能
- [root@ngnix conf]# nginx -t
- [root@ngnix conf]# cd /usr/local/nginx/html/
- [root@ngnix html]# ll -h
- 总用量 1.4M
- -rw-r--r-- 1 root root 497 5月 30 11:36 50x.html
- -rw-r--r-- 1 root root 52 6月 2 14:12 chunren.html
- -rw-r--r-- 1 root root 98K 5月 30 15:40 chunren.jpg
- -rw-r--r-- 1 root root 54 6月 2 14:14 dingzhen.html
- -rw-r--r-- 1 root root 1.3M 6月 2 14:14 dingzhen.jpg
- -rw-r--r-- 1 root root 615 5月 30 11:36 index.html
- -rw-r--r-- 1 root root 150 5月 30 20:48 test.php
- [root@ngnix html]# vim dingzhen.html

实现网页图片的大小压缩
- [root@ngnix html]# cd /etc/yum.repos.d/
- [root@ngnix yum.repos.d]# ls
- local.repo repo.bak
- [root@ngnix yum.repos.d]# mv repo.bak/* ./
- mv:是否覆盖"./local.repo"? yes
- [root@ngnix yum.repos.d]# mv local.repo repo.bak/
- [root@ngnix yum.repos.d]# yum install -y gd-devel
- cd /opt/nginx-1.12.0/
- ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_image_filter_module
- make && make install
-
- vim /usr/local/nginx/conf/nginx.conf
- http {
- ....
- gzip on;
- gzip_types text/plain .... image/jpeg image/gif image/png; #将图片类型文件压缩加入gzip
- ....
- server {
- ....
- location ~* \.(jpg|gif|png)$ {
- image_filter resize 200 200; #按等比例缩小图像的宽或高至指定大小。如果只想设置一个维度,另一维可以指定为:“-”
- expires ld;
- } #(如果长>宽就以长为标准,宽为比例;如果长<宽就以宽为标准,长为比例)
- }
- }
-
-
- cd /usr/local/nginx/html
- 先将game.jpg文件传到/usr/local/nginx/html目录下
- vim index.html
- ......
- <img src="game.jpg"/> #网页中插入图片
- </body>
- </html>
-
- systemctl restart nginx
防盗链
盗链主机
- [root@localhost yum.repos.d]# cd /usr/local/nginx/html
- [root@localhost html]# vim dz.html #创建盗链html
- <h1>this is test web</h1>
- <img src="http://www.xy101.com/dingzhen.jpg" />

- [root@localhost html]#vim /etc/httpd/conf/httpd.conf
- ServerName www.dz.com:80


此时此刻发现盗链主机成功盗链源网站


在源主机机型设置防盗链
- [root@ngnix html]# cd /usr/local/nginx/html
-
- [root@ngnix conf]# vim nginx.conf
-
- location ~ \.(gif|jpg|jpeg|swf)$ { 这段正则表达式表示匹配不区分大小写,以.jpg 或.gif 或.swf 结尾的文件;
- root html;
- expires 1d;
- valid_referers none blocked xy101.com *.xy101.com; 设置信任的网站
- if ( $invalid_referer ) {
- rewrite ^/ http://www.xy101.com/error.png;
- }
- }

