常見問題概述
1.如何自定義返回給客戶端的404錯誤頁面
2.如何檢視伺服器狀態資訊
3.如果客戶端訪問伺服器提示「too many open files」如何解決
4.如何解決客戶端訪問頭部資訊過長的問題
5.如何讓客戶端瀏覽器快取資料
6.日誌切割
7.開啟gzip壓縮功能,提高資料傳輸效率
8.開啟檔案快取功能
9.然後客戶機訪問此web伺服器驗證效果:
10.使用ab壓力測試軟體測試併發量
11.編寫測試指令碼生成長頭部資訊的訪問請求
12.客戶端訪問不存在的頁面,測試404錯誤頁面是否重定向
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
… …charset utf-8; //僅需要中文時需要改選項,可選項
error_page 404 /404.html; //自定義錯誤頁面
… …[root@proxy ~]# vim /usr/local/nginx/html/404.html //生成錯誤頁面
oops,no no no page …
[root@proxy ~]# nginx -s reload
#請先確保nginx是啟動狀態,否則執行該命令會報錯
1)編譯安裝時使用–with-http_stub_status_module開啟狀態頁面模組
[root@proxy ~]# tar -zxvf nginx-1.12.2.tar.gz
[root@proxy ~]# cd nginx-1.12.2
[root@proxy nginx-1.12.2]# ./configure \
–with-http_ssl_module //開啟ssl加密功能[root@proxy nginx-1.12.2]# make && make install //編譯並安裝–with-stream //開啟tcp/udp**模組
–with-http_stub_status_module //開啟status狀態頁面
2).啟用nginx服務並檢視監聽埠狀態
ss命令可以檢視系統中啟動的埠資訊,該命令常用選項如下:
-a顯示所有埠的資訊
-n以數字格式顯示埠號
-t顯示tcp連線的埠
-u顯示udp連線的埠
-l顯示服務正在監聽的埠資訊,如httpd啟動後,會一直監聽80埠
-p顯示監聽埠的服務名稱是什麼(也就是程式名稱)
注意:在rhel7系統中可以使用ss命令替代netstat命令,功能一樣,選項一樣。
[root@proxy ~]# /usr/local/nginx/sbin/nginx
[root@proxy ~]# netstat -anptu | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* listen 10441/nginx
[root@proxy ~]# ss -anptu | grep nginx
3)修改nginx配置檔案,定義狀態頁面
[root@proxy ~]# cat /usr/local/nginx/conf/nginx.conf
… …location /status
… …[root@proxy ~]# /usr/local/nginx/sbin/nginx
4)優化後,檢視狀態頁面資訊
補充:active connections:當前活動的連線數量。
accepts:已經接受客戶端的連線總數量。
handled:已經處理客戶端的連線總數量。
(一般與accepts一致,除非伺服器限制了連線數量)。
requests:客戶端傳送的請求數量。
reading:當前伺服器正在讀取客戶端請求頭的數量。
writing:當前伺服器正在寫響應資訊的數量。
waiting:當前多少客戶端在等待伺服器的響應。
1)優化前使用ab高併發測試
[root@proxy ~]# ab -n 2000 -c 2000
benchmarking 192.168.4.5 (be patient)
socket: too many open files (24) //提示開啟檔案數量過多
2)修改nginx配置檔案,增加併發量
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
… …worker_processes 2; //與cpu核心數量一致
events
… …[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
3)優化linux核心引數(最大檔案數量)
[root@proxy ~]# ulimit -a //檢視所有屬性值
[root@proxy ~]# ulimit -hn 100000 //設定硬限制(臨時規則)
[root@proxy ~]# ulimit -sn 100000 //設定軟限制(臨時規則)
[root@proxy ~]# vim /etc/security/limits.conf
… …user / group soft nofile 100000
user / group hard nofile 100000
#該配置檔案分4列,分別如下:
#使用者或組 硬限制或軟限制 需要限制的專案 限制的值
修改nginx配置檔案,增加資料報頭部快取大小
日誌檔案越來越大怎麼辦?單個檔案10g? 如何切割?
步驟:1. 把舊的日誌重新命名 (相當於備份儲存)
2. kill usr1 pid(nginx的程序pid號)
1)手動執行
備註:/usr/local/nginx/logs/nginx.pid檔案中存放的是nginx的程序pid號。
[root@proxy ~]# mv access.log access2.log
[root@proxy ~]# kill -usr1 $(cat /usr/local/nginx/logs/nginx.pid)
2)自動完成
每週5的03點03分自動執行指令碼完成日誌切割工作。
[root@proxy ~]# vim /usr/local/nginx/logbak.sh
#!/bin/bash
date=date +%y%m%d
logpath=/usr/local/nginx/logs
mv $logpath/access.log log
path
/acc
ess−
logpath/access-
logpat
h/ac
cess
−date.log
mv $logpath/error.log log
path
/err
or
−logpath/error-
logpat
h/er
ror−
date.log
kill -usr1 $(cat $logpath/nginx.pid)
[root@proxy ~]# crontab -e
03 03 * * 5 /usr/local/nginx/logbak.sh
1)如果需要處理大量靜態檔案,可以將檔案快取在記憶體,下次訪問會更快。
常見問題及處理
常見問題及處理 問題1 時輸入醫生姓名簡碼調不出號別。原因分析或處理方法 1,可能沒設定該醫生對應的號別。2,門診 本地引數設定中 號別輸入匹配沒有設定成 按醫生簡碼 問題2 收藥品費用時不顯示藥品庫存。原因分析或處理方法 1,本地引數沒設定藥房對應關係,設定後即可。問題3 收非藥品費用時單價欄位在...
nginx常見問題
1 顯示的錯誤資訊是 413 request entity too large 原因是請求實體太長了。一般出現種情況是post請求時body內容post的資料太大了,如上傳大檔案過大 如post資料比較多 在伺服器的 etc nginx目錄中找到nginx.conf 找到http 段,修改或增加 c...
Nginx常見問題
1.在 apache 的寫法 rewritecond nginx.org rewriterule 在 nginx 可以對應寫成 server 但 nginx 作者更建議的方法是 server server f q 1.請教一下,nginx的rewrite規則怎麼寫?比如將 http rewrite為...