Nginx服務編譯搭建

2021-10-04 23:49:43 字數 4905 閱讀 9322

官方中文**

簡介

起源:世界第二大web伺服器軟體,以高併發、低消耗著稱,源自於俄羅斯,建立者 igor(伊戈爾),2023年開源,最早以**伺服器的身份出現,2015成立nginx公司,

2023年以6.7億被f5 networks公司收購。

nginx的基礎特性:

模組化設計,較好的擴充套件性

高可靠性

支援熱部署,不停機更新配置檔案,公升級版本,更換日誌檔案

低記憶體消耗,10000個keep-alive下的非活動連線,僅需2.5m記憶體

event-driven(事件驅動),aio(非同步非阻塞),mmap(記憶體對映),sendfile(****)

基本功能:

靜態資源的web伺服器

http協議的反向**

fastcgi、uwsgi(python)

pop3/imap4郵件反向**

模組化,zip、ssl等模組

nginx程序結構:

master/worker 結構:乙個 master 程序,生成乙個或多個 worker 程序。

master:

讀取nginx配置檔案,驗證有效性和正確性

建立、繫結和關閉socket連線

接受外界指令,比如重啟、開、關服務

不中斷服務,平滑公升級

處理perl指令碼

worker:

接受處理客戶的請求(按模組區分)

i/o呼叫

與後端伺服器通訊

快取資料

傳送請求結果

接受主程式的指令

nginx模組:

核心模組:core module

標準模組:

注:本實驗為單機部署,實驗前確保網路能正常上網

配置檔案及引數

全域性配置檔案:/etc/nginx/nginx.conf

虛擬主機配置:/etc/nginx/conf.d/*.conf

前提條件

關閉selinux

輸入getenforce 獲取當前selinux狀態

enforcing為開啟,disabled為關閉

臨時關閉 # sudo setenforce 0

永久關閉 # sudo vi /etc/sysconfig/selinux

開放nginx的80埠號

firewall-cmd --zone=public --add-port=

80/tcp --permanent

重啟防火牆

firewall-cmd --reload
檢視埠號是否開啟

firewall-cmd --query-port=

80/tcp

.3.檢查是否已安裝rpm包nginx

rpm -q nginx \\檢視是否安裝
nginx安裝和配置:

安裝前提軟體環境

yum -y install gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel`openssl openssl-devel
複製nginx和快取包到/usr/src,解壓

useradd -s /sbin/nologin nginx

cd /usr/src

tar zxf master.tar.gz

tar zxf ngx_cache_purge-

2.3.tar.gz

tar zxf nginx-

1.12

.0.tar.gz

編譯安裝nginx

&&make&&make install新增nginx系統服務並啟動

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

mkdir -p /var/tmp/nginx/client

chown -r nginx:nginx /var/tmp/nginx

vim /etc/init.d/nginx

新增啟動指令碼

#!

/bin/bash

prog=

"/usr/local/nginx/sbin/nginx"

pidf=

"/usr/local/nginx/logs/nginx.pid"

case "$1"

in start)

netstat -anplt |grep ":80"

&>

/dev/

null

&& pgrep "nginx"

&>

/dev/

null

if[ $?

-eq 0

] then

echo "nginx service already running."

else

$prog -t &

>

/dev/

null

if[ $?

-eq 0

]; then

$prog

echo "nginx service start success."

else

$prog -t

fi fi ;;

stop)

netstat -anplt |grep ":80"

&>

/dev/

null

&& pgrep "nginx"

&>

/dev/

null

if[ $?

-eq 0

] then

kill -s quit $(cat $pidf)

echo "nginx service stop success."

else

echo "nginx service already stop"

fi ;

; restart)

$0 stop

$0 start ;;

status)

netstat -anplt |grep ":80"

&>

/dev/

null

&& pgrep "nginx"

&>

/dev/

null

if[ $?

-eq 0

] then

echo "nginx service is running."

else

echo "nginx is stop."

fi ;

; reload)

netstat -anplt |grep ":80"

&>

/dev/

null

&& pgrep "nginx"

&>

/dev/

null

if[ $?

-eq 0

] then

$prog -t &

>

/dev/

null

if[ $?

-eq 0

]; then

kill -s hup $(cat $pidf)

echo "reload nginx config success."

else

$prog -t

fi else

echo "nginx service is not run."

fi ;;*

) echo "usage: $0 "

exit 1

esac

啟動nginx服務

chmod +x /etc/init.d/nginx

chkconfig --add nginx

chkconfig nginx on

service nginx start

netstat -anpt | grep nginx

檢視版本

nginx -v
檢視模組

nginx -v

搭建nginx服務 nginx原始碼包編譯

nginx 給實驗乙個新環境,刪除,重啟vm 1,解壓包 tar zxf nginx 1.14.0.tar.gz 2,修改配置檔案 root nginx 1.14.0 src core nginx.h define nginx ver nginx 這裡就是curl看到的nginx的名字 tengin...

nginx服務搭建

1.安裝nginx前,我們首先要確保系統安裝了g gcc openssl devel pcre devel和zlib devel軟體 cd usr local src tar zxvf pcre 8.21.tar.gz cd pcre 8.21 configure make makeinstall ...

nginx服務傻瓜搭建

安裝步驟 一 先準備好相關原始碼包和程式包,如下圖 所有包都在雲伺服器的 src目錄下。二 安裝 1 安裝nginx伺服器,支援vod stream fileupload cd src tar zxvf pcre 8.36.tar.gz cd pcre 8.36 pcre是乙個非常小的正規表示式庫,...