中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Centos 7部署Nginx網站服務

發布時間:2020-07-15 23:55:59 來源:網絡 閱讀:532 作者:俊偉祺i 欄目:系統運維

一、Nginx服務基礎

Nginx專為性能優化而開發,其最知名的優點是它的穩定性和低系統資源消耗,以及對HTTP并發連接的高處理能力(單臺物理服務器可支持30000~50000個并發請求)。正因為如此,大量提供社交網絡、新聞資訊、電子商務及虛擬主機等服務的企業紛紛選擇Nginx來提供Web服務。

1、Nginx服務的優勢

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、前提準備

Nginx最新的穩定版本為1.12.0,其安裝文件可以從官方網站Nginx官方網站/下載。

1)Centos 7服務器一臺;
2)Windows客戶端一臺:
3)Centos 7操作系統鏡像;
4)Nginx鏡像;
安裝Nginx用到的所有鏡像及軟件包可以訪問網盤提取:https://pan.baidu.com/s/18iRCuiMEyGbEFSeBp17uVQ
提取碼:qszt

2、開始安裝部署Nginx服務器

1)掛載Linux光盤,拷貝nginx依賴程序到/usr/src/目錄

Centos 7部署Nginx網站服務

[root@centos02 ~]# mount /dev/cdrom /mnt/    <!--掛載光盤-->
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@centos02 ~]# cp /mnt/nginx-1.6.0.tar.gz /usr/src/ <!--拷貝Nginx包到/usr/src/目錄-->

2)切換LAMP光盤,將mnt目錄下所有數據拷貝到/usr/src/目錄

[root@centos02 ~]# umount /mnt/ &lt;!--卸載光盤--&gt;
Centos 7部署Nginx網站服務

[root@centos02 ~]# mount /dev/cdrom /mnt/   <!--掛載光盤-->
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@centos02 ~]# cp /mnt/* /usr/src/ <!--將光盤目錄下所有數據拷貝到/usr/src/目錄-->

3)切換到操作系統光盤,安裝nginx依賴程序

[root@centos02 ~]# umount /mnt/ &lt;!--卸載光盤--&gt;
Centos 7部署Nginx網站服務

[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執行命令-->

3、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網站服務器
Centos 7部署Nginx網站服務

4、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的網站日志記錄-->

5、修改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配置項中體現出來。

  • worker_connections:這個配置項指定的是每個進程處理的連接,一般在10000以下(默認為1024),與上面工作進程數量的配置項關聯,例如:若工作進程數為8,每個進程處理4096個連接,則允許Nginx正常提供服務的連接數已經超過了3萬個(4096*8=32768)。當然,具體還要看服務器硬件、網絡帶寬等物理條件的性能表現。

6、配置Nginx的訪問狀態統計

[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服務--> 

客戶端訪問狀態統計頁:
Centos 7部署Nginx網站服務

  • Active connections:表示當前的活動連接數;

  • server accepts handled requests:表示已經處理的連接信息,三個數字依次表示已處理的連接數、成功的TCP握手次數、已經處理的請求數。

三、配置虛擬主機

1、安裝DNS服務器

[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

2、配置基于域名的虛擬主機

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地址,訪問域名測試是否成功
Centos 7部署Nginx網站服務

Centos 7部署Nginx網站服務

—————— 本文至此結束,感謝閱讀 ——————

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泽库县| 浠水县| 大新县| 巴林右旗| 工布江达县| 永顺县| 威海市| 永城市| 汕头市| 筠连县| 延长县| 平潭县| 张家港市| 常熟市| 武定县| 溆浦县| 玉田县| 江阴市| 山阳县| 全椒县| 双辽市| 长泰县| 兴宁市| 新巴尔虎右旗| 迁西县| 河南省| 上蔡县| 米林县| 临洮县| 洛浦县| 滦南县| 千阳县| 大理市| 本溪| 台北县| 昌黎县| 曲松县| 洱源县| 博白县| 合江县| 梨树县|