您好,登錄后才能下訂單哦!
[root@localhost ~]# yum install pcre-devel zlib-devel gcc gcc-c++ -y ##安裝環境包
[root@localhost ~]# useradd -M -s /sbin/nologin nginx ##創建程序性用戶
[root@localhost ~]# mkdir /chen ##創建掛載點
[root@localhost ~]# mount.cifs //192.168.100.23/LNMP /chen ##掛載
Password for root@//192.168.100.23/LNMP:
[root@localhost chen]# tar zxvf nginx-1.12.2.tar.gz -C /opt/ ##解壓
[root@localhost chen]# cd /opt/
[root@localhost opt]# ls
nginx-1.12.2 rh
[root@localhost opt]# cd nginx-1.12.2/
[root@localhost nginx-1.12.2]# ls
auto CHANGES.ru configure html man src
CHANGES conf contrib LICENSE README
./configure \ ##安裝nginx組件
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
[root@localhost nginx-1.12.2]# make && make install ##編譯
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##做軟鏈接讓系統能識別nginx的所有人命令
[root@localhost nginx-1.12.2]# 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@localhost nginx-1.12.2]# cd /etc/init.d/ ##到系統啟動腳本
[root@localhost init.d]# vim nginx ##寫一個nginx腳本
#!/bin/bash
#chkconfig: - 99 20 #注釋信息
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx" #這個變量,指向我的命令文件
PIDF="/usr/local/nginx/logs/nginx.pid" #這個變量,指向nginx的進程號
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
[root@localhost init.d]# chmod +x nginx ##給Nginx提升權限
[root@localhost init.d]# chkconfig --add nginx ##添加nginx
[root@localhost init.d]# service nginx start
[root@localhost init.d]# netstat -ntap | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17544/nginx: master
[root@localhost init.d]# systemctl stop firewalld.service
[root@localhost init.d]# setenforce 0
[root@localhost ~]# curl -I http://192.168.136.163/
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Tue, 05 Nov 2019 07:30:14 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 05 Nov 2019 07:13:26 GMT
Connection: keep-alive
ETag: "5dc12116-264"
Accept-Ranges: bytes
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
http { ##在http級別下添加
include mime.types;
default_type application/octet-stream;
server_tokens off; ##關閉版本號
[root@localhost init.d]# service nginx stop ##關閉服務
[root@localhost init.d]# service nginx start ##開啟服務
[root@localhost init.d]# curl -I http://192.168.136.163/ ##查看Nginx信息
HTTP/1.1 200 OK
Server: nginx ##版本號被隱藏了
Date: Tue, 12 Nov 2019 14:22:00 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 12 Nov 2019 13:46:35 GMT
Connection: keep-alive
ETag: "5dcab7bb-264"
Accept-Ranges: bytes
[root@localhost init.d]# vim /usr/local/nginx/conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream;
server_tokens on; ##開啟版本號
修改Nginx源碼包文件
[root@localhost init.d]# cd /opt/nginx-1.12.2/src/core/ ##切換到src源碼包目錄
[root@localhost core]# vim nginx.h ##修改文件
#define NGINX_VERSION "1.1.2" ##此處版本號偽造成1.1.2
重新編譯安裝
[root@localhost core]# cd /opt/nginx-1.12.2/ ##到Nginx下
[root@localhost nginx-1.12.2]# ./configure \ ##重新安裝組件
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
[root@localhost nginx-1.12.0]# make ##重新編譯
...
[root@localhost nginx-1.12.0]# make install ##重新安裝
...
重啟Nginx服務,查看版本信息
[root@localhost nginx-1.12.2]# service nginx stop ##關閉
[root@localhost nginx-1.12.2]# service nginx start ##開啟
[root@localhost nginx-1.12.2]# curl -I http://192.168.136.163/ ##查看Nginx信息
HTTP/1.1 200 OK
Server: nginx/1.1.2 ##此時的版本號就是偽造的版本號
Date: Tue, 12 Nov 2019 14:34:02 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 12 Nov 2019 13:46:35 GMT
Connection: keep-alive
ETag: "5dcab7bb-264"
Accept-Ranges: bytes
當Nginx將網頁數據返回給客戶端后,可設置緩存時間,以方便在日后進行相同內容的請求時直接返回,避免重復請求,加快了訪問速度
一般針對靜態網頁設置,對動態網頁不設置緩存時間
可在Windows客戶端中使用fiddler查看網頁緩存時間
[root@localhost ~]# cd /chen/
[root@localhost chen]# ls
Discuz_X3.4_SC_UTF8.zip nginx-1.12.0.tar.gz php-7.1.20.tar.gz
fang.png nginx-1.12.2.tar.gz shu.jpg
mysql-boost-5.7.20.tar.gz php-7.1.10.tar.bz2
[root@localhost chen]# cp shu.jpg /usr/local/nginx/html/
[root@localhost chen]# cd /usr/local/nginx/html/
[root@localhost html]# ls
50x.html index.html shu.jpg
[root@localhost html]# vim index.html ##進入網頁做個圖片的路徑
15 <img src="shu.jpg"/> ##在第15行添加圖片
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
##在server服務器級別
76 location ~\.(gif|jepg|jpg|icp|bmp|png)$ { ##加入能使別這些圖片格式
77 root html; ##管理員頁面
78 expires 1d; ##緩存時間1天
16 user nginx nginx; ##16行加入nginx用戶和組
[root@localhost html]# service nginx start
隨著Nginx運行時間增加,日志也會增加。為了方便掌握Nginx運行狀態,需要時刻關注日志文件
太大的日志文件對監控是一個大災難
定期進行日志文件的切割
Nginx自身不具備日志分割處理的功能,但可以通過Nginx信號控制功能的腳本實現日志的自動切割,并通過Linux的計劃任務周期性的進行日志切割
[root@localhost ~]# vim 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" ##pid的路徑
[ -d $logs_path ] || mkdir -p $logs_path ##沒有目錄則創建目錄
mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d
kill -USR1 $(cat $pid_path) ##結束重新生成新的pid文件
find $logs_path -mtime +30 | xargs rm -rf ##刪除30天前的日志文件
[root@localhost ~]# chmod +x fenge.sh ##給執行權限
[root@localhost ~]# ./fenge.sh ##執行腳本文件
[root@localhost ~]# cd /var/log/nginx/ ##切換到Nginx的日志目錄下
[root@localhost nginx]# ls
test.com-access.log-20191112
[root@localhost nginx]# date -s 2019-11-14 ##修改日期為明天的時間
2019年 11月 14日 星期四 00:00:00 CST
[root@localhost nginx]# cd ~
[root@localhost ~]# ./fenge.sh ##重新執行腳本
[root@localhost ~]# cd /var/log/nginx/
[root@localhost nginx]# ls ##查看日志分割日志文件
test.com-access.log-20191112 test.com-access.log-20191113
[root@localhost nginx]# crontab -e ##周期性計劃任務
0 1 * * * /opt/fenge.sh
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。