您好,登錄后才能下訂單哦!
Nginx專為性能優化而開發,其最知名的優點是它的穩定性和低系統資源消耗,以及對HTTP并發連接的高處理能力(單臺物理服務器可支持30000~50000個并發請求)。正因為如此,大量提供社交網絡、新聞資訊、電子商務及虛擬主機等服務的企業紛紛選擇Nginx來提供Web服務。
Nginx是一個很牛的高性能Web和反向代理服務器,它具有有很多非常優越的特性:
- 高并發連接:官方測試能支撐5萬并發連接,在實際生產環境中跑到2,~3W并發連;
- 內存消耗少:在3W并發連接下,開啟的10個NGINX進程才消耗150M內存(15M*10=150M);
- 配置文件非常簡單:風格跟程序一樣通俗易懂;
- 成本低廉:Nginx作為開源軟件,可以免費使用,而購買F5 BIG-IP、NetScaler等硬件負載均衡交換機則需要十多萬至幾十萬人民幣;
- 支持rewrite重寫規則:能夠根據域名、URL的不同,將HTTP請求分發到不同的后端服務器群組;
- 內置的健康檢查功能:如果Nginx Proxy后端的后臺web服務器宕機了,不會影響前端訪問;
- 節省帶寬:支持GZIP壓縮,可以添加瀏覽器本地緩存的Header頭;
- 穩定性高:用于反向代理,宕機的概率微乎其微;
Nginx最新的穩定版本為1.12.0,其安裝文件可以從官方網站Nginx官方網站/下載。
1)Centos 7服務器一臺;
2)Windows客戶端一臺:
3)Centos 7操作系統鏡像;
4)Nginx鏡像;
安裝Nginx用到的所有鏡像及軟件包可以訪問網盤提取:https://pan.baidu.com/s/18iRCuiMEyGbEFSeBp17uVQ
提取碼:qszt
[root@centos02 ~]# mount /dev/cdrom /mnt/ <!--掛載光盤-->
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@centos02 ~]# cp /mnt/nginx-1.6.0.tar.gz /usr/src/ <!--拷貝Nginx包到/usr/src/目錄-->
[root@centos02 ~]# umount /mnt/ <!--卸載光盤-->
[root@centos02 ~]# mount /dev/cdrom /mnt/ <!--掛載光盤-->
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@centos02 ~]# cp /mnt/* /usr/src/ <!--將光盤目錄下所有數據拷貝到/usr/src/目錄-->
[root@centos02 ~]# umount /mnt/ <!--卸載光盤-->
[root@centos02 ~]# mount /dev/cdrom /mnt/ <!--掛載光盤-->
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@centos02 ~]# rm -rf /etc/yum.repos.d/CentOS-* <!--清除系統自帶yum源-->
[root@centos02 ~]# yum -y install pcre-devel zlib-devel <!--安裝Nginx的依賴程序-->
[root@centos02 ~]# useradd -M -s /sbin/nologin nginx <!--創建管理Nginx的用戶-->
[root@centos02 ~]# tar zxvf /usr/src/nginx-1.6.0.tar.gz -C /usr/src/
<!--解壓縮Nginx軟件包-->
[root@centos02 ~]# cd /usr/src/nginx-1.6.0/
[root@centos02 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx
--user=nginx --group=nginx --with-http_stub_status_module
<!--配置Nginx-->
[root@centos02 nginx-1.6.0]# make && make install <!--編譯安裝Nginx-->
[root@centos02 ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ <!--優化Nginx執行命令-->
[root@centos02 ~]# nginx <!--啟動Nginx服務-->
[root@centos02 ~]# netstat -anptu | grep nginx
<!--監聽Nginx服務是否啟動成功-->
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4663/nginx: master
[root@centos02 ~]# killall -s QUIT nginx <!--關閉Nginx服務-->
[root@centos02 ~]# killall -3 nginx <!--關閉Nginx服務-->
[root@centos02 ~]# killall -1 nginx <!--重新啟動Nginx-->
[root@centos02 ~]# killall -s HUP nginx <!--重新啟動Nginx-->
[root@centos02 ~]# vim /etc/init.d/nginx <!--編寫Nginx服務管理腳本-->
#!/bin/bash
#chkconfig: 35 90 30
#description:nginx server
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill 0s HUP $(cat $PIDF)
;;
*)
echo "Usage:$0 (start|stop|restart|reload)"
exit 1
esac
exit 0
[root@centos02 ~]# chmod +x /etc/init.d/nginx <!--添加腳本執行權限-->
[root@centos02 ~]# chkconfig --add nginx <!--添加為系統服務-->
[root@centos02 ~]# chkconfig --level 35 nginx on <!--設置開機自動啟動-->
[root@centos02 ~]# /etc/init.d/nginx stop<!--腳本停止Nginx服務-->
[root@centos02 ~]# /etc/init.d/nginx start<!--腳本啟動Nginx服務-->
[root@centos02 ~]# /etc/init.d/nginx restart<!--腳本重啟Nginx服務-->
客戶端配置和Nginx服務器同一塊網卡同網段,設置網關即可訪問Nginx網站服務器
[root@centos02 ~]# ls -ld /usr/local/nginx/conf/nginx.conf
-rw-r--r-- 1 root root 2656 11月 28 17:22
/usr/local/nginx/conf/nginx.conf <!--Nginx的主配置文件-->
[root@centos02 ~]# ls -ld /usr/local/nginx/sbin/
drwxr-xr-x 2 root root 19 11月 28 17:22
/usr/local/nginx/sbin/ <!--管理Nginx服務程序文件-->
[root@centos02 ~]# ls -ld /usr/local/nginx/html/
drwxr-xr-x 2 root root 40 11月 28 17:22
/usr/local/nginx/html/ <!--Nginx的網站根目錄-->
[root@centos02 ~]# ls -ld /usr/local/nginx/logs/
drwxr-xr-x 2 root root 58 11月 28 17:47
/usr/local/nginx/logs/ <!--Nginx的網站日志記錄-->
[root@centos02 ~]# cp /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/conf/nginx.conf.bak <!--備份主配置文件-->
[root@centos02 ~]# vim /usr/local/nginx/conf/nginx.conf
<!--編輯主配置文件-->
3 user nginx; <!--運行用戶-->
4 worker_processes 1; <!--工作進程數量-->
6 error_log logs/error.log; <!--錯誤日志文件的位置-->
12 pid logs/nginx.pid; <!--PID文件的位置-->
16 use epoll; <!--使用epoll模型-->
17 worker_connections 1024; <!--每進程處理1024個連接-->
29 #access_log logs/access.log main; <!--訪問日志的位置-->
31 sendfile on; <!--開啟高效傳輸文件模式-->
35 keepalive_timeout 65; <!--連接保持超時-->
39 server { <!--server的開始,一個server表示一個虛擬主機-->
40 listen 80; <!--Web服務的監聽配置-->
41 server_name localhost; <!--網站名稱(FQDN)-->
44 charset utf-8; <!--網頁的默認字符集-->
48 location / { <!--根目錄配置-->
49 root html; <!--網站根目錄的位置,相對于安裝目錄-->
50 index index.html index.html;<!--默認首頁(索引頁)-->
51 }
84 } <!--server結束-->
listen:限定端口的同時允許限定IP地址,采用“IP地址:端口號”形式,root語句用來設置特定訪問位置的網頁文檔路徑,默認為Nginx安裝目錄下的html/目錄,根據需要可改為/var/www/html等其他路徑,但更改后需保證nginx用戶對其具有讀取權限。
worker_processes :表示工作進程的數量,若服務器由多塊CPU或者使用多核處理器,可以參考CPU核心總數來指定工作進程數。具體含義在worker_connections配置項中體現出來。
[root@centos02 ~]# vim /usr/local/nginx/conf/nginx.conf
<!--修改nginx配置文件,指定訪問位置并打開stub_status配置-->
52 location /status {
53 stub_status on;
54 access_log off;
55 }
[root@centos02 ~]# /etc/init.d/nginx restart<!--重啟Nginx服務-->
客戶端訪問狀態統計頁:
Active connections:表示當前的活動連接數;
- server accepts handled requests:表示已經處理的連接信息,三個數字依次表示已處理的連接數、成功的TCP握手次數、已經處理的請求數。
[root@centos02 ~]# yum -y install bind bind-chroot bind-utils
<!--安裝DNS-->
[root@centos02 ~]# echo "" > /etc/named.conf
<!--清空主配置文件-->
[root@centos02 ~]# vim /etc/named.conf <!--修改主配置文件-->
options {
listen-on port 53 { 192.168.100.20; };
directory "/var/named";
}
zone "benet.com" IN {
type master;
file "benet.com.zone";
}
zone "accp.com" IN {
type master;
file "accp.com.zone";
}
[root@centos02 ~]# named-checkconf -z /etc/named.conf
<!--檢查主配置文件是否配置錯誤-->
[root@centos02 ~]# vim /var/named/benet.com.zone
<!--配置benet.com的正向解析區域-->
$TTL 86400
@ SOA benet.com. root.benet.com(
2019112801
1H
15M
1W
1D
)
@ NS centos02.benet.com.
centos02 A 192.168.100.20
www A 192.168.100.20
[root@centos02 ~]# chmod +x /var/named/benet.com.zone
<!--正向解析區域配置文件添加執行權限-->
[root@centos02 ~]# chown named:named
/var/named/benet.com.zone <!--修改屬主屬組-->
[root@centos02 ~]# named-checkzone benet.com
/var/named/benet.com.zone
<!--檢查benet.com正向解析區域配置文件是否錯誤-->
zone benet.com/IN: loaded serial 2019112801
OK
[root@centos02 ~]# cp /var/named/benet.com.zone
/var/named/accp.com.zone
<!--復制benet.com正向解析區域到accp.com正向解析區域-->
[root@centos02 ~]# vim /var/named/accp.com.zone
<!--修改accp.com正向解析區域配置文件-->
$TTL 86400
@ SOA accp.com. root.accp.com(
2019112801
1H
15M
1W
1D
)
@ NS centos02.accp.com.
centos02 A 192.168.100.20
www A 192.168.100.20
[root@centos02 ~]# named-checkzone accp.com
/var/named/accp.com.zone
<!--檢查accp.com正向解析區域配置文件是否錯誤-->
[root@centos02 ~]# vim /etc/sysconfig/network-scripts/
ifcfg-ens32 <!--編輯網卡添加主DNS-->
DNS1=192.168.100.20 <!--添加主DNS-->
[root@centos02 ~]# systemctl restart network<!--重啟網卡服務-->
[root@centos02 ~]# systemctl start named <!--啟動DNS服務器-->
[root@centos02 ~]# systemctl enable named<!--設置開機自動啟動-->
[root@centos02 ~]# nslookup www.benet.com
<!--解析域名測試是否正常-->
Server: 192.168.100.20
Address: 192.168.100.20#53
Name: www.benet.com
Address: 192.168.100.20
[root@centos02 ~]# nslookup www.accp.com
<!--解析域名測試是否正常-->
Server: 192.168.100.20
Address: 192.168.100.20#53
Name: www.accp.com
Address: 192.168.100.20
Nginx的配置文件使用“http { }”界定標記用于設定HTTP服務器,包括訪問日志、http端口、網頁目錄、默認字符集、連接保持,以及虛擬web主機、php解析等網站全局設置,其中大部分包含在子界定標記 “ server { }”內。“ server { }”代表一個具體的網站設置。
<!--創建虛擬主機網站根目錄-->
[root@centos02 ~]# mkdir -p /var/www/benetcom
[root@centos02 ~]# mkdir -p /var/www/accpcom
<!--創建虛擬主機的網站主頁-->
[root@centos02 ~]# echo "www.benet.com" >
/var/www/benetcom/index.html
[root@centos02 ~]# echo "www.accp.com" >
/var/www/accpcom/index.html
[root@centos02 ~]# vim /usr/local/nginx/conf/nginx.conf
<!--修改Nginx主配置文件支持虛擬主機-->
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
server { <!--server開始-->
listen www.benet.com:80; <!--監聽的域名及端口-->
server_name www.benet.com; <!--網站名稱-->
charset utf-8; <!--默認字符集-->
access_log logs/www.benet.com.access.log;
<!--訪問日志位置-->
error_log logs/www.benet.com.error.log;
<!--錯誤日志位置-->
location / { <!--根目錄配置-->
root /var/www/benetcom/; <!--網站根目錄-->
index index.html; <!--默認首頁-->
}
} <!--server結尾-->
<!--以下配置請參考以上注釋-->
server {
listen www.accp.com:80;
server_name www.accp.com;
charset utf-8;
access_log logs/www.accp.com.access.log;
error_log logs/www.accp.com.error.log;
location / {
root /var/www/accpcom/;
index index.html;
}
}
[root@centos02 ~]# nginx -t <!--檢查Nginx是否配置錯誤-->
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@centos02 ~]# systemctl restart named<!--重新啟動DNS服務-->
[root@centos02 ~]# /etc/init.d/nginx restart<!--重新啟動Nginx服務-->
客戶端添加DNS地址,訪問域名測試是否成功
—————— 本文至此結束,感謝閱讀 ——————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。