Nginx--環境搭建

Nginx

(“engine x”)是俄羅斯的程序設計師 Igor Sysoev 所開發高性能的 Web 和 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器

在高連接併發的情況下,Nginx 是 Apache 服務器不錯的替代品

Nginx進程

Nginx 採用了高度模塊化的設計思路,並且內部的進程主要有兩類

master 進程 和 worker 進程

其中 master 進程只有一個,worker 進程可以有多個

worker 進程纔是真正 working 的進程,纔是真正處理請求的進程。worker 進程全部都是 master 進程的子進程

worker 進程是以普通用戶的身份進行運行的,這樣就可以極大增加程序的安全性

就算是萬一有一個進程被劫持,那也不會有管理員權限

nginx 的熱部署和其併發模型有着密不可分的關係

因爲 master 進程的關係,當通知 ngnix 重讀配置文件的時候,master 進程會進行語法錯誤的判斷

如果存在語法錯誤的話,返回錯誤,不進行裝載;如果配置文件沒有語法錯誤,那麼 ngnix 也不會將新的配置調整到所有 worker 中

而是,先不改變已經建立連接的 worker,等待 worker 將所有請求結束之後

將原先在舊的配置下啓動的 worker 殺死,然後使用新的配置創建新的 worker

搭建環境

yum install gcc opensll-devel zlib-devel -y

yum install -y pcre-*

PCRE 作用是讓 Nginx 支持 Rewrite 功能

ll /root/Desktop/nginx-*.tar.gz

tar zxf nginx-*.tar.gz

cd nginx-*

mkdir ~/.vim

建立一個家目錄下的隱藏目錄

cp -r contrib/vim/* ~/.vim

讓這個虛擬機的vim可以自動檢測配置文件語法是否有錯誤

ls

configure
使用 ./configure 變編譯
./configure --help

--prefix=PATH

set installation prefix

--with-file-aio

enable file AIO support

vim /root/Desktop/nginx-*/auto/cc/gcc

註釋debug

172 CFLAGS="$CFLAGS -g"

vim /root/Desktop/nginx-*/src/core/nginx.h

關閉版本顯示

防止惡意攻擊

14 #define NGINX_VER "nginx/" NGINX_VERSION

刪除 NGINX_VERSION

cd /root/Desktop/nginx-*

./configure --prefix=/usr/local/nginx --with-file-aio
編譯
make && make install
安裝
/usr/local/nginx/sbin/nginx
開啓 nginx
netstat -antlup
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4809/nginx: master
通過 netstat 可查看到 nginx 開啓後的狀態

/usr/local/nginx/sbin/nginx -V

nginx version: nginx/
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) 
configure arguments: --prefix=/usr/local/nginx --with-file-aio
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章