前言:
在實際開發項目中有可能會經常用到nginx,你們也許會拿它做負載均衡,或者轉發請求做動靜分離,用來加載前端項目;或者解決跨域的問題等等,今天這篇文章就講解下在Linux下如何安裝nginx。
正文:
nginx官網下載:http://nginx.org/en/download.html
這里我們下載Linux穩定版
一、安裝前准備,我們先檢驗下系統是否安裝g++、gcc、openssl-devel、pcre-devel和zlib-devel,這些安裝nginx所需要的依賴包。
yum list installed | grep gcc //這個指令既可以檢查gcc又可以檢查g++ yum list installed | grep openssl-devel yum list installed | grep pcre-devel yum list installed | grep zlib-devel
知識補充:
因為Linux下軟件安裝的方式很多,沒有一個通用的方式查看軟件包是否安裝,所以總結下來就是這幾類。
- rpm包安裝的,可以用 rpm -qa 看到,如果要查找某軟件包是否安裝,用 rpm -qa | grep "軟件或者包的名字"
- 以deb包安裝的,可以用 dpkg -l 看到。如果是查找指定軟件包,用 dpkg -l | grep "軟件或者包的名字"
- yum方法安裝的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep "軟件名或者包名"
- 如果是以源碼包自己編譯安裝的,例如.tar.gz或者tar.bz2形式的,這個只能看可執行文件是否存在了。
我經常用的安裝方式是yum安裝依賴包,tar去安裝軟件包,比如安裝nginx。
運行結果如下圖:
如果沒有安裝的話,就先安裝一下。
1、gcc安裝
安裝nginx需要將nginx的源碼進行編譯,編譯依賴gcc環境,所以需要安裝gcc,指令:
yum install gcc-c++
2、 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
3、 zlib 安裝
zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫,指令:
yum install -y zlib zlib-devel
4、 openSSL 安裝
OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程序供測試或其它目的使用。
nginx 不僅支持 http 協議,還支持 https(即在ssl協議上傳輸http),所以需要在 Centos 安裝 OpenSSL 庫,指令:
yum install -y openssl openssl-devel
二、准備好上面的依賴環境就可以正式安裝啦
1、把安裝包通過xftp上傳到服務器/usr/local目錄下
2、 然后解壓,指令
tar -zxvf nginx-1.18.0.tar.gz
知識補充:
源碼的安裝一般由3個步驟組成:配置(configure)、編譯(make)、安裝(make install)。
執行這幾個命令時一定要到解壓后的nginx文件夾下執行(這里是/usr/local/nginx-1.18.0下)
3、配置,--prefix是指定安裝的位置,執行編譯、安裝(make,make install)成功后,生成的配置文件(conf文件夾)和啟動文件(sbin文件夾)等會放到生成的nginx這個文件夾里(nginx文件夾的名字是可以自定義的),這樣做的好處就是方便以后的維護。指令:
./configure --prefix=/usr/local/nginx
4、編譯,指令:
make
5、安裝,指令:
make install
6、執行完上面的命令后,你在指定的文件夾里的找到了生成的conf和sbin文件,就說明基本安裝成功。(_temp是啟動后生成的文件)
7、然后進到conf里改下配置文件nginx.conf,如果你有root權限,端口可以設置成80(nginx默認端口號),但是如果你沒有root權限建議把端口改成,1024以上的端口,比如8081。(在Linux下,默認端口號在1024以下的程序是要在root下才能使用的,在其他用戶下,如果嘗試使用將會報錯)
指令:
cd /usr/local/nginx/conf //編輯配置文件 vi nginx.conf i esc->:wq
8、進到sbin文件后,
啟動nginx,指令:
./nginx
關閉 nginx,指令:
./nginx -s stop
或
./nginx -s quit
重啟 nginx,指令:
./nginx -s reload
9、啟動完成后,通過以下指令查看是否啟動成功
ps -ef|grep nginx
出現如下圖的,就證明啟動成功啦!
10、想要本地看到nginx的主頁,需要讓運維映射下外網ip和端口或者配一下windows下的跳板機(一般情況下,工作中的服務器是內網地址,無法直接訪問,所以要做下映射),這樣就可以通過瀏覽器訪問nginx的主頁。
常見安裝中出現的問題:
一、如果出現下面的問題,就是說相應的安裝包缺失,用yum安裝相應的包就行。
這里缺失的是pcre-devel
二、如果出現下面的問題,要不是端口被占用,要不就是權限不夠不能用1024下的端口(nginx默認80)
參考文章:
https://blog.csdn.net/huangyimo/article/details/80760908
https://www.cnblogs.com/hdnav/p/7941165.html
https://www.cnblogs.com/yuanqiangfei/p/8033000.html
總結:實踐是檢驗真理的唯一標准,親測可用。