二進位制安裝nginx——新手上路
什麼是Nginx?
Nginx (engine x) 是一個使用c語言開發的高效能的http伺服器及反向代理伺服器。,也是一個IMAP/POP3/SMTP服務。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發的,第一個公開版本0.1.0釋出於2004年10月4日。官方測試nginx能夠支支撐5萬併發連結,並且cpu、記憶體等資源消耗卻非常低,執行非常穩定。
其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4釋出。
Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。
Nginx的應用場景
1、 http伺服器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。
2、 虛擬主機。可以實現在一臺伺服器虛擬出多個網站。例如個人網站使用的虛擬主機。
基於埠的,不同的埠
基於域名的,不同域名
3、 反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺伺服器不能滿足使用者的請求時,需要用多臺伺服器叢集可以使用nginx做反向代理。並且多臺伺服器可以平均分擔負載,不會因為某臺伺服器負載高宕機而某臺伺服器閒置的情況。
準備工作
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[[email protected] ~]# uname -r #檢視系統核心版本
3.10.0-327.el7.x86_64
[[email protected] ~]# uname -m #檢視系統是否64位
x86_64
首先我們還是做服務之前先把奇葩的防火牆給關掉,因為很多規則會撞到牆。
[[email protected] ~]# iptables -F
[[email protected] ~]# iptables -X
[[email protected] ~]# iptables -Z
[[email protected] ~]# iptables -L
[[email protected]~]#setenforce 0
[[email protected] ~]#vi /etc/sysconfig/selinux #修改SELINUX
[[email protected] opt]# yum install pcre-devel zlib-devel #安裝pcre和zlibgzip模組,需要 zlib 庫,rewrite模組需要 pcre 庫
[[email protected] ~]# yum info pcre-devel #info:顯示指定的rpm軟體包的描述資訊和概要資訊;我們顯示一下pcre的詳細資訊
[[email protected] ~]# useradd -s /sbin/nologin -M nginx #建立一個nginx的使用者
[[email protected] ~]# id nginx #看nginx的id資訊
[[email protected] ~]# tar zxf nginx-1.11.2.tar.gz #我上傳一個包,然後進行解壓縮nginx-xx.tar.gz包,或者獲取nginx,在http://nginx.org/en/download.html上可以獲取當前最新的版本。
獲知用wget下載
[[email protected] nginx-1.11.2]# ./configure --prefix=/usr/local/nginx--user=nginx --group=nginx #配置檔案以及使用者等資訊,要在nginx目錄下面執行
[[email protected] nginx-1.11.2]# make && make install #編譯安裝
[[email protected] ~]# /usr/local/nginx--user\=nginx/sbin/nginx #啟動一下應用
[[email protected] ~]# ss -tannml | grep 80 看一下80埠
這個時候登陸IP地址就可以顯示了
接下來寫一個指令碼可以啟動nginx
我們先把服務關閉
[[email protected] ~]# ps aux | grep nginx #看一下nginx後臺程序佔用埠
[[email protected] ~]# kill -9 4761
[[email protected] ~]# kill -9 4762 #把埠關閉
這個時候可以發現網頁打不開了
[[email protected] ~]# vi nginx.sh #寫指令碼
#!/bin/bash
# chkconfig: 2345 97 25
#description nginx-server-scryt
nginx=/usr/local/nginx--user\=nginx/sbin/nginx
case "$1" in
start )
netstat -anlpt | grep nginx
if [ $? -eq 0 ]
then
echo "nginx service running!"
else
echo "nginx service not runing!"
$nginx
fi
;;
restart)
$nginx -s reload
if [ $? -eq 0 ]
then
echo "nginx server is begin restart"
else
echo "nginx server restart"
fi
;;
stop)
$nginx -s stop
if [ $? -eq 0 ]
then
echo "nginx server is stop"
else
echo "nginx server stop,try again"
fi
;;
status)
netstat -anlpt | grep nginx
if [ $? -eq 0 ]
then
echo "nginx server is running!"
else
echo "nginx server is not runing.try to restart"
fi
;;
*)
echo "Please enter (start|restart|stop|status)"
;;
esac
exit 0
[[email protected] ~]# chmod 755 nginx.sh #加許可權
[[email protected] ~]# cp nginx.sh nginx #複製成目錄
[[email protected] ~]# cp nginx /etc/init.d/ #把nginx目錄給複製到/etc/iniat.d目錄下
[[email protected] init.d]# chkconfig --add nginx #我把nginx新增到開機自啟動
[[email protected] init.d]# chkconfig --list nginx #列出nginx開啟
[[email protected] init.d]# service nginx start #啟動服務