linux系統(tǒng)離線安裝nginx全過(guò)程
介紹:nginx是一個(gè)高性能的http和反向代理服務(wù)器,并發(fā)能力很強(qiáng),一般用來(lái)做負(fù)載均衡比較多,日常開(kāi)發(fā)中用作web服務(wù)器
一、下載nginx
我們下載這個(gè)穩(wěn)定版本
二、環(huán)境依賴檢查
nginx安裝需要很多外部依賴,先登錄到linux服務(wù)器
2.1 gcc檢查
gcc -v
出現(xiàn)如下,說(shuō)明gcc是安裝了的
如果最后一行沒(méi)有出現(xiàn)對(duì)應(yīng)gcc版本信息,那就要去手動(dòng)下載了 ,下面的部分是下載安裝各種依賴
提供個(gè)阿里云鏡像地址:centos-7-os-x86_64-Packages安裝包下載_開(kāi)源鏡像站-阿里云
gcc 清單
cpp-4.8.5-44.el7.x86_64.rpm gcc-4.8.5-44.el7.x86_64.rpm glibc-devel-2.17-317.el7.x86_64.rpm glibc-headers-2.17-317.el7.x86_64.rpm kernel-headers-3.10.0-1160.el7.x86_64.rpm libmpc-1.0.1-3.el7.x86_64.rpm mpfr-3.1.1-4.el7.x86_64.rpm
一個(gè)個(gè)找到下載,小技巧:可以直接復(fù)制名字定位,ctrl+f
把下載好的gcc依賴統(tǒng)一上傳到服務(wù)器的某個(gè)文件夾下,或者把筆者提供的zip包上傳上去,解壓即可,以下是幾個(gè)解壓相關(guān)的命令
1.解壓縮zip文件到當(dāng)前目錄:
unzip file.zip
2.解壓縮zip文件到指定目錄:
unzip file.zip -d /path/to/directory
3. 查看zip文件內(nèi)容而不解壓縮:
unzip -l file.zip
如果沒(méi)有安裝unzip命令,可以通過(guò)以下命令在大多數(shù)Linux發(fā)行版中安裝(需要連接網(wǎng)絡(luò)):
sudo apt install unzip # 對(duì)于基于Debian的發(fā)行版(如Ubuntu) sudo yum install unzip # 對(duì)于基于RPM的發(fā)行版(如Fedora、CentOS)
不想安裝unzip,那就都單獨(dú)上傳到同一個(gè)文件夾下即可
然后在這個(gè)文件夾下執(zhí)行以下命令
rpm -Uvh *.rpm --nodeps --force
2.2 PCRE檢查
以下是百度百科的介紹:
- PCRE(Perl Compatible Regular Expressions)是一個(gè)Perl庫(kù),包括perl 兼容的正則表達(dá)式庫(kù)。
- 這些在執(zhí)行正規(guī)表達(dá)式模式匹配時(shí)用與Perl 5同樣的語(yǔ)法和語(yǔ)義是很有用的。
- Boost太龐大了,使用boost regex后,程序的編譯速度明顯變慢。
- 測(cè)試了一下,同樣一個(gè)程序,使用boost::regex編譯時(shí)需要3秒,而使用pcre不到1秒。
- 因此改用pcre來(lái)解決C語(yǔ)言中使用正則表達(dá)式的問(wèn)題
為什么要這個(gè)庫(kù)?因?yàn)閚ginx是使用C語(yǔ)言開(kāi)發(fā)的,為了實(shí)現(xiàn)高性能,用到了這個(gè)庫(kù)
在服務(wù)器上執(zhí)行
rpm -qa | grep pcre
可以看到筆者的服務(wù)器已經(jīng)安裝了這個(gè)依賴
如果沒(méi)有出現(xiàn)這些信息說(shuō)明沒(méi)有安裝,需要自行下載
點(diǎn)進(jìn)去有個(gè)版本介紹
翻譯下:
PCRE庫(kù)有兩個(gè)主要版本。目前的版本PCRE2于2015年發(fā)布,目前為10.39版本。
較早但仍廣泛部署的PCRE庫(kù)最初于1997年發(fā)布,版本為8.45。這一版本的PCRE現(xiàn)在已經(jīng)壽終正寢,不再積極維護(hù)。8.45版本預(yù)計(jì)將是舊的PCRE庫(kù)的最終版本,新項(xiàng)目應(yīng)該使用PCRE2。
繼續(xù)點(diǎn)擊這個(gè),外網(wǎng)有點(diǎn)慢
有很多版本,這里以最新版舉例
下載下來(lái)后上傳到linux服務(wù)器某個(gè)文件夾下
執(zhí)行解壓命令
tar -xvf pcre2-10.43.tar.gz
cd進(jìn)入解壓后的目錄下依次執(zhí)行
./configure (后面可加 --prefix=yourpath,安裝到指定路徑,一般不加,就安裝到默認(rèn)路徑下) make make install
2.3 zlib檢查
百度介紹:
- zlib是一種用于數(shù)據(jù)壓縮和解壓縮的開(kāi)源軟件庫(kù)。它使用的是壓縮算法為DEFLATE,可以有效地壓縮和解壓縮大部分?jǐn)?shù)據(jù)。
- zlib可以被廣泛應(yīng)用于許多不同的場(chǎng)合,例如軟件安裝包的壓縮、數(shù)據(jù)庫(kù)文件的壓縮、網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膲嚎s等。它的使用方法簡(jiǎn)單,支持多種編程語(yǔ)言,且具有較高的壓縮率和解壓率。
- zlib的優(yōu)點(diǎn)是可以有效地壓縮和解壓縮大部分?jǐn)?shù)據(jù),使用方法簡(jiǎn)單,支持多種編程語(yǔ)言,并且具有較高的壓縮率和解壓率。缺點(diǎn)是壓縮率不如其他一些算法高,例如bzip2和LZMA。
- zlib是一個(gè)輕量級(jí)的庫(kù),可以在不同的系統(tǒng)平臺(tái)上使用。它的源代碼可以在網(wǎng)絡(luò)上免費(fèi)下載,并且具有較高的可移植性。zlib支持的壓縮格式為DEFLATE,可以有效地壓縮和解壓縮大部分?jǐn)?shù)據(jù)。
- zlib提供了一組簡(jiǎn)單的函數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的壓縮和解壓縮。它支持多種編程語(yǔ)言,例如C、C++、Java、Python等,可以方便地在這些語(yǔ)言中使用。zlib提供的函數(shù)包括壓縮數(shù)據(jù)的compress函數(shù)和解壓縮數(shù)據(jù)的uncompress函數(shù)。這兩個(gè)函數(shù)的使用方法非常簡(jiǎn)單,只需要提供待壓縮或解壓縮的數(shù)據(jù)和目標(biāo)緩沖區(qū)的地址即可。
- zlib還提供了一些高級(jí)的函數(shù),可以支持更復(fù)雜的壓縮和解壓縮操作。例如,可以使用deflateInit、deflate和deflateEnd函數(shù)來(lái)進(jìn)行流式壓縮,可以使用inflateInit、inflate和inflateEnd函數(shù)來(lái)進(jìn)行流式解壓縮。
- 總的來(lái)說(shuō),zlib是一種非常方便的數(shù)據(jù)壓縮和解壓縮工具,它可以有效地壓縮和解壓縮大部分?jǐn)?shù)據(jù),并且使用方法簡(jiǎn)單,支持多種編程語(yǔ)言。
在服務(wù)器上執(zhí)行
rpm -qa | grep zlib
筆者所在linux系統(tǒng)已經(jīng)安裝zlib
沒(méi)有如上信息,要下載安裝
zlib是這兩位開(kāi)發(fā)的,前者寫(xiě)壓縮算法,后者寫(xiě)解壓縮算法
往下劃 ,找到這個(gè)點(diǎn)擊下載
下載好后上傳到服務(wù)器某文件夾下
執(zhí)行解壓命令
tar -zxvf zlib.tar.gz
再cd 到解壓后的zlib目錄順序執(zhí)行
./configure (后面可加 --prefix=yourpath,安裝到指定路徑,一般不加,就安裝到默認(rèn)路徑下) make make install
2.4 openssl檢查
服務(wù)器上輸入
openssl version
很抱歉,筆者的服務(wù)器也已經(jīng)安裝了openssl,你如果沒(méi)有出現(xiàn)對(duì)應(yīng)信息,需要自己下載安裝
下載地址:[ Downloads ] - /source/index.html
這里舉例下載的是這個(gè)最新版
下載好后,同樣的上傳到服務(wù)器某個(gè)文件夾下解壓
執(zhí)行命令
tar -zxvf openssl-3.3.0.tar.gz
然后進(jìn)入解壓目錄依次執(zhí)行如下
./configure (后面可加 --prefix=yourpath,安裝到指定路徑,一般不加,就安裝到默認(rèn)路下) make make install
三、安裝nginx
以上外部依賴都準(zhǔn)備好后,可以安裝nginx了
首先把下載的nginx壓縮包上傳到服務(wù)器某文件下,筆者這里上傳到/opt/nginx下
依次執(zhí)行如下命令
cd /opt/nginx tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0/
進(jìn)入解壓后的文件夾下執(zhí)行如下,這里配置安裝到/usr/local下
./configure (--prefix=/usr/local/nginx,這是指定安裝到某個(gè)路徑下,如果不指定,則默認(rèn)也是安裝到這個(gè)路徑下,沒(méi)有nginx文件夾會(huì)自動(dòng)創(chuàng)建) make make install
我這里執(zhí)行完第一句報(bào)錯(cuò)了,我重新安裝下PCRE庫(kù)(按照上述pcre流程來(lái))
安裝好后再進(jìn)入nginx的解壓目錄
執(zhí)行這個(gè)./configure
make make install
四、啟動(dòng)nginx
接著啟動(dòng)nginx
cd /usr/local/nginx/sbin/ ./nginx
nginx的默認(rèn)啟動(dòng)端口是80
輸入以下命令查看端口80
sudo lsof -i :80
可以看到80端口被nginx監(jiān)聽(tīng)了
把80端口的訪問(wèn)權(quán)限打開(kāi)
-- 開(kāi)通 80 端口 訪問(wèn)權(quán)限 sudo firewall-cmd --permanent --add-port=80/tcp -- 重載防火墻 sudo firewall-cmd --reload
瀏覽器訪問(wèn)下:192.168.19.16:80 ,說(shuō)明nginx啟動(dòng)成功了
修改端口,比如改成8081(注意先把8081端口的防火墻開(kāi)啟,命令參考上面)
cd /usr/local/nginx/conf vim nginx.conf
按 i 鍵,把監(jiān)聽(tīng)端口改成8081
esc 退出,輸入:wq 保存
再執(zhí)行以下命令
cd /usr/local/nginx/sbin/ ./nginx
這時(shí)候?yàn)g覽器訪問(wèn) 192.168.19.16:8081,修改成功了
這里有個(gè)問(wèn)題,之前的端口80,nginx服務(wù)我沒(méi)有停用,瀏覽器打開(kāi)192.168.19.16:80,還是可以訪問(wèn)的
服務(wù)器查看80和8081端口,發(fā)現(xiàn)都被nginx監(jiān)聽(tīng)了
既然修改了端口,那原先的不應(yīng)該再監(jiān)聽(tīng)了,殺死80端口對(duì)應(yīng)nginx的pid
kill 22698
發(fā)現(xiàn)80端口不再被nginx監(jiān)聽(tīng),釋放出來(lái)了,瀏覽器也無(wú)法訪問(wèn)
到這里nginx 已經(jīng)啟動(dòng)好了
五、設(shè)置開(kāi)機(jī)自啟動(dòng)
這里采用Systemd方式,把nginx作為系統(tǒng)服務(wù),設(shè)置開(kāi)機(jī)自啟動(dòng)
首先執(zhí)行以下命令
sudo vim /etc/systemd/system/nginx.service
創(chuàng)建一個(gè)nginx系統(tǒng)服務(wù)文件,按 i 鍵并輸入以下內(nèi)容,esc鍵退出,:wq保存
注意 /usr/local/nginx要替換成自己的nginx的安裝路徑(不是解壓路徑)
nginx -s quit # 這種方法較stop相比就比較溫和,需要進(jìn)程完成當(dāng)前工作后再停止。 nginx -s stop # 立即停止服務(wù) 這種方法比較強(qiáng)硬,無(wú)論進(jìn)程是否在工作,都直接停止進(jìn)程
如果想溫和退出nginx,ExecStop換成如下
ExecStop=/usr/local/nginx/sbin/nginx -s quit
[Unit] Description=The nginx HTTP and reverse proxy server After=network.target [Service] Type=forking ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop [Install] WantedBy=multi-user.target
以上保存退出后依次執(zhí)行以下命令
先把之前啟動(dòng)的nginx服務(wù)進(jìn)程殺掉
刷新配置
sudo systemctl daemon-reload
允許nginx自啟動(dòng)
sudo systemctl enable nginx.service
啟動(dòng)nginx
sudo systemctl start nginx.service
查看開(kāi)機(jī)自啟動(dòng)的服務(wù)列表
systemctl list-units --type=service
查看nginx服務(wù)的狀態(tài)
sudo systemctl status nginx.service
瀏覽器輸入 192.168.19.16:8081 是可以訪問(wèn)的
停止nginx服務(wù)
sudo systemctl stop nginx.service
reboot重啟驗(yàn)證nginx是否開(kāi)機(jī)自啟動(dòng)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
windows 10 + vwware+centos 6.5虛擬機(jī)系統(tǒng)安裝Tomcat
這篇文章主要介紹了windows 10 + vwware+centos 6.5虛擬機(jī)系統(tǒng)安裝Tomcat的相關(guān)資料,需要的朋友可以參考下2017-01-01CentOS7修改服務(wù)器系統(tǒng)時(shí)間的方法
服務(wù)器上的系統(tǒng)時(shí)間不對(duì),比實(shí)際的UTC快了將近63分鐘。在這里小編給大家分享下系統(tǒng)時(shí)間更正的過(guò)程,對(duì)centos修改服務(wù)器時(shí)間的知識(shí)感興趣的朋友參考下吧2016-10-10CentOS7服務(wù)器環(huán)境下vsftpd安裝及配置方法
這篇文章主要介紹了CentOS7服務(wù)器環(huán)境下vsftpd安裝及配置方法,結(jié)合實(shí)例形式分析了CentOS7服務(wù)器環(huán)境下進(jìn)行vsftpd安裝及配置的步驟與相關(guān)問(wèn)題解決方法,需要的朋友可以參考下2018-03-03Linux中的進(jìn)程狀態(tài)和優(yōu)先級(jí)
這篇文章主要介紹了Linux中的進(jìn)程狀態(tài)和優(yōu)先級(jí)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09在 CentOS 8/RHEL 8 上安裝和使用 Cockpit的方法
Cockpit 是一個(gè)基于 Web 的服務(wù)器管理工具,可用于 CentOS 和 RHEL 系統(tǒng)。最近發(fā)布的 CentOS 8 和 RHEL 8,其中 cockpit 是默認(rèn)的服務(wù)器管理工具。這篇文章主要介紹了在 CentOS 8/RHEL 8 上安裝和使用 Cockpit的方法,需要的朋友可以參考下2019-10-10