Nginx之簡介及安裝(1)
阿新 • • 發佈:2022-05-10
Nginx簡介及安裝
Nginx簡介
Nginx是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器,目前國內70%以上公司都在使用nginx作為自己的web伺服器。Nginx特點是佔有記憶體少、併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好。
Nginx相對於Apache優點:
- 高併發響應效能非常好,官方Nginx處理靜態檔案併發5w/s
- 反向代理效能非常強(可用於負載均衡)
- 記憶體和cpu佔用率底(為Apache的1/5--1/10)
- 對後端服務有健康檢查功能
- 支援PHP cgi方式和fastcgi方式
- 配置程式碼簡潔且容易上手
Nginx模組
核心模組:HTTP模組、EVENT模組和MAIL模組
基礎模組:HTTP Access模組、HTTP FastCGI模組、HTTP Proxy模組和HTTP Rewrite模組
第三方模組:HTTP Upstream Request Hash模組、Notice模組和HTTP Access Key模組
Nginx安裝
#環境準備 [root@aliyun ~]# yum install -y vim gcc telnet lrzsz openssl openssl-devel pcre pcre-devel #下載Nginx原始碼包 [root@aliyun ~]# wget -c http://nginx.org/download/nginx-1.1.18.tar.gz #建立nginx使用者,並設定為不能登陸 [root@aliyun ~]# useradd -r -s /sbin/nologin nginx #解壓 [root@aliyun ~]# tar -xzf nginx-1.1.18.tar.gz #進入解壓目錄,進行預編譯 [root@aliyun nginx-1.1.18]# ls auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src [root@aliyun nginx-1.1.18]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install #檢查nginx配置檔案是否正確,返回ok即正確 [root@aliyun ~]# /usr/local/nginx/sbin/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 #啟動,測試nginx [root@aliyun ~]# /usr/local/nginx/sbin/nginx [root@aliyun ~]# ps -aux | grep nginx | grep -v grep root 12091 0.0 0.0 45944 1088 ? Ss 10:03 0:00 nginx: master process /usr/local/nginx/sbin/nginx nginx 12092 0.0 0.0 46348 1636 ? S 10:03 0:00 nginx: worker process #啟動成功
常用編譯選項說明
nginx大部分常用模組,編譯時,.configure --help
以--without
開頭的都是預設安裝
- --prefix=PATH:指定nginx的安裝目錄,預設
/usr/local/nginx
- --conf-path=PATH:設定nginx.conf配置檔案的路徑。nginx允許使用不同的配置檔案啟動,通過命令列中的-c選項。預設為
prefix/conf/nginx.conf
- --user=name:設定nginx工作程序的使用者。安裝完成後,可以隨時在nginx.conf配置檔案更改user指令。預設使用者名稱是nobody。
--group=name
類似 - --with-pcre:設定PCRE庫的原始碼路徑,如果已通過yum命令安裝,使用--wiith-pcre自動找到庫檔案。使用
--with-pcre=PATH
./configure
和make
完成。perl正則表示式使用在location指令
和ngx_http_rewrite_module模組
中。 - --with-zlib=PATH:指定zlib的原始碼解壓目錄。在預設就啟用的網路傳輸壓縮模組
ngx_http_gzip_module
時需要使用zlib - --with-http_ssl_module:使用https協議模組。預設情況下,該模組沒有被構建。前提是openssl與openssl-devel已安裝
- --with-http_stub_status_module:用來監控nginx的當前狀態
- --with-http_realip_module:通過這個模組允許我們改變客戶端請求頭中客戶端IP地址值(如X-Real-IP或X-Forwarded-For),意義在於能夠使得後臺伺服器記錄原始客戶端的IP地址。
- --add-module=PATH:新增第三方外部模組,如nginx-sticky-module-ng或快取模組,每次新增新的模組都要重新編譯(Tengine可以在新加入module時無需重新編譯)