Nginx 安裝與配置

Mike_Jia發表於2024-09-06

Nginx 程式作為一款輕量級的網站服務軟體,因其穩定性和豐富的功能而快速佔領伺服器市 場,但 Nginx 最被認可的還當是系統資源消耗低且併發能力強,因此得到了國內諸如新浪、 網易、騰訊等門戶站的青睞。

特點:

支援高併發,能支援幾萬併發連線
資源消耗少,在3萬併發連線下開啟10個nginx執行緒消耗的記憶體不到200M
可以做http反向代理和負載均衡
支援非同步網路i/o事件模型epoll

1.安裝準備
一. gcc 安裝
安裝 nginx 需要先將官網下載的原始碼進行編譯,編譯依賴 gcc 環境,如果沒有 gcc 環境,則需要安裝:

yum install gcc-c++
二. PCRE pcre-devel 安裝
PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 相容的正規表示式庫。nginx 的 http 模組使用 pcre 來解析正規表示式,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發的一個二次開發庫。nginx也需要此庫。命令:

yum install -y pcre pcre-devel
三. zlib 安裝
zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。

yum install -y zlib zlib-devel
四. OpenSSL 安裝
OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程式供測試或其它目的使用。
nginx 不僅支援 http 協議,還支援 https(即在ssl協議上傳輸http),所以需要在 Centos 安裝 OpenSSL 庫。
yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

2.安裝啟動

1.下載原始碼包
wget
-c https://nginx.org/download/nginx-1.12.0.tar.gz
2.解壓縮原始碼tar -zxvf nginx-1.12.0.tar.gz
3.配置,編譯安裝 開啟nginx狀態監測功能./configure --prefix=/opt/nginx1-12/ --with-http_ssl_module --with-http_stub_status_module make && make install
4.啟動nginx,進入sbin目錄,找到nginx啟動命令
cd sbin./nginx
#啟動.
/nginx -s stop
#關閉./nginx -s reload
#重新載入

3.檢測服務

netstat -tunlp |grep 80
curl -I 127.0.0.1
#如果訪問不了,檢查selinux,iptables

4.部署web站點

nginx預設站點是Nginx目錄下的html資料夾,這裡可以從nginx.conf中查到

 location /{
            root   html;  #這裡是預設的站點html資料夾,也就是 /opt/nginx1-12/html/資料夾下的內容
            index  index.html index.htm; #站點首頁檔名是index.html
        }

如果要部署網站業務資料,只需要把開發好的程式全放到html目錄下即可

[root@oldboy_python /tmp 11:34:52]#ls /opt/nginx1-12/html/
index.html  jssts.jpeg  lhy.mp4  man.jpg  wget-log

透過域名或者資源訪問

http://www.pyyuc.cn/man.jpg

目錄結構:

  • conf 存放nginx所有配置檔案的目錄,主要nginx.conf
  • html 存放nginx預設站點的目錄,如index.html、error.html等
  • logs 存放nginx預設日誌的目錄,如error.log access.log
  • sbin 存放nginx主命令的目錄,sbin/nginx

5.Nginx配置檔案

Nginx主配置檔案/etc/nginx/nginx.conf是一個純文字型別的檔案,整個配置檔案是以區塊的形式組織的。一般,每個區塊以一對大括號{}來表示開始與結束。

CoreModule核心模組

user www;                       #Nginx程序所使用的使用者
worker_processes 1;             #Nginx執行的work程序數量(建議與CPU數量一致或auto)
error_log /log/nginx/error.log  #Nginx錯誤日誌存放路徑
pid /var/run/nginx.pid          #Nginx服務執行後產生的pid程序號
events事件模組

events {            
    worker_connections  //每個worker程序支援的最大連線數
    use epool;          //事件驅動模型, epoll預設
}
http核心模組

//公共的配置定義在http{}
http {  //http層開始
...    
    //使用Server配置網站, 每個Server{}代表一個網站(簡稱虛擬主機)
    'server' {
        listen       80;        //監聽埠, 預設80
        server_name  localhost; //提供服務的域名或主機名
        access_log host.access.log  //訪問日誌
        //控制網站訪問路徑
        'location' / {
            root   /usr/share/nginx/html;   //存放網站程式碼路徑
            index  index.html index.htm;    //伺服器返回的預設頁面檔案
        }
        //指定錯誤程式碼, 統一定義錯誤頁面, 錯誤程式碼重定向到新的Locaiton
        error_page   500 502 503 504  /50x.html;
    }
    ...
    //第二個虛擬主機配置
    'server' {
    ...
    }
    
    include /etc/nginx/conf.d/*.conf;  //包含/etc/nginx/conf.d/目錄下所有以.conf結尾的檔案

}   //http層結束

相關文章