window nginx啟動(dòng)命令(nginx怎么啟動(dòng))
夕逆IT
- 軟件開(kāi)發(fā)
- 2023-08-13
- 95

大家好,如果您還對(duì)window nginx啟動(dòng)命令不太了解,沒(méi)有關(guān)系,今天就由本站為大家分享window nginx啟動(dòng)命令的知識(shí),包括nginx怎么啟動(dòng)的問(wèn)題都會(huì)給大...
大家好,如果您還對(duì)window nginx啟動(dòng)命令不太了解,沒(méi)有關(guān)系,今天就由本站為大家分享window nginx啟動(dòng)命令的知識(shí),包括nginx怎么啟動(dòng)的問(wèn)題都會(huì)給大家分析到,還望可以解決大家的問(wèn)題,下面我們就開(kāi)始吧!
windows下查看nginx啟動(dòng)日志
在Windows下,Nginx的啟動(dòng)日志可以在Nginx的安裝目錄下查看。具體步驟如下:
1.打開(kāi)Nginx的安裝目錄,一般在C:\nginx或者D:\nginx等位置。
2.進(jìn)入logs目錄,可以看到access.log和error.log兩個(gè)文件。
-access.log是Nginx的訪問(wèn)日志,記錄了每個(gè)請(qǐng)求的詳細(xì)信息,包括請(qǐng)求的時(shí)間、IP地址、請(qǐng)求的URL、響應(yīng)狀態(tài)碼等。
-error.log是Nginx的錯(cuò)誤日志,記錄了Nginx在運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤信息,包括語(yǔ)法錯(cuò)誤、配置錯(cuò)誤、啟動(dòng)錯(cuò)誤等。
3.雙擊打開(kāi)access.log或error.log文件,可以使用記事本或其他文本編輯器查看日志內(nèi)容。
4.如果想要在啟動(dòng)Nginx時(shí)將啟動(dòng)日志輸出到控制臺(tái),可以在命令行中使用以下命令啟動(dòng)Nginx:
```
nginx.exe-cnginx.conf-pC:\nginx-g"daemonoff;"
```
其中,-c參數(shù)指定Nginx的配置文件路徑,-p參數(shù)指定Nginx的安裝目錄,-g參數(shù)指定Nginx的全局配置,其中的"daemonoff;"表示不以守護(hù)進(jìn)程方式運(yùn)行Nginx,將啟動(dòng)日志輸出到控制臺(tái)。
通過(guò)以上步驟,您可以在Windows下查看Nginx啟動(dòng)日志。
linux中開(kāi)啟服務(wù)的命令
1.
啟動(dòng)Nginx服務(wù)--在sbin目錄下啟動(dòng)命令:./nginx關(guān)閉命令:./nginx-sstop和./nginx-squit刷新配置文件:./nginx-sreload(每次對(duì)Nginx的配置文件nginx.conf修改后,都要進(jìn)行重新加載配置文件)
2.
進(jìn)程查看進(jìn)程ps-ef|grep-ixxxx-i大概是ignore是忽略的意思這里是忽略大小寫(xiě)。殺死進(jìn)程kill-9xxxx
3.
防火墻開(kāi)啟防火墻serviceiptablesstart關(guān)閉防火墻serviceiptablesstop查看防火墻的狀態(tài)serviceiptablesstatus永久關(guān)閉防火墻chkconfigiptablesoff
4.
啟動(dòng)zookeeper服務(wù)--在zookeeper的bin目錄下開(kāi)啟zoo
Linux啟動(dòng)NGINX啟動(dòng)不了是怎么回事
Nginx啟動(dòng)不了這種情況一般出在修改了配置后無(wú)法重啟,造成無(wú)法啟動(dòng)的原因主要有這幾類:
1、端口沖突:
這種情況最常發(fā)生,比如說(shuō)同一臺(tái)服務(wù)器上裝了多個(gè)Web服務(wù)器或容器,都占用了80端口,那在啟動(dòng)Nginx時(shí)是無(wú)法啟動(dòng)的,解決辦法是核實(shí)是否存在端口占用的情況,如果有,則結(jié)束某個(gè)占用Nginx端口的進(jìn)程,或者修改其默認(rèn)端口。查看服務(wù)器指定端口被誰(shuí)使用的指令如下圖示:
2、配置文件中存在語(yǔ)法錯(cuò)誤:
我們?cè)谛薷腘ginx配置文件(nginx.conf)有時(shí)可能會(huì)改錯(cuò),導(dǎo)致配置文件語(yǔ)法錯(cuò)誤,這種情況下Nginx是無(wú)法啟動(dòng)成功的。解決辦法就是查看終端上的錯(cuò)誤提示,針對(duì)性的修復(fù)即可。
3、調(diào)用了不存在的路徑、程序:
這種情況比較少見(jiàn),但也是會(huì)出現(xiàn)的,比如在Nginx中啟用了Lua支持,引用了錯(cuò)誤的Lua文件或代碼則可能會(huì)導(dǎo)致Nginx無(wú)法啟動(dòng)。
綜上,Linux服務(wù)器上如果出現(xiàn)了Nginx無(wú)法啟動(dòng)的情況,都會(huì)在終端上顯示錯(cuò)誤信息的,我們根據(jù)錯(cuò)誤提示做好排查即可。
以上就是我的觀點(diǎn),對(duì)于這個(gè)問(wèn)題大家是怎么看待的呢?歡迎在下方評(píng)論區(qū)交流~我是科技領(lǐng)域創(chuàng)作者,歡迎關(guān)注我了解更多科技知識(shí)!
如何啟動(dòng)nginxweb日志
nginx訪問(wèn)日志默認(rèn)為開(kāi)啟狀態(tài),日志位于nginx安裝目錄下的logs/access.log日志配置指令如下:access_logpath[format[buffer=size][gzip[=level]][flush=time][if=condition]];access_logoff;第一行是啟用日志第二行是關(guān)閉日志啟用日志的必選參數(shù)為path表示日志路徑
idea啟動(dòng)項(xiàng)目可以用nginx的域名訪問(wèn)嗎
前者的啟動(dòng)要通過(guò)前置定量來(lái)廣域合成,所以不可以用后者域名訪問(wèn)
深入淺出Nginx,如何做到高并發(fā)下的高效處理如何做到熱部署
01前言
Nginx("enginex")是一款是由俄羅斯的程序設(shè)計(jì)師IgorSysoev所開(kāi)發(fā)高性能的Web和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP代理服務(wù)器。
在高連接并發(fā)的情況下,Nginx是Apache服務(wù)器不錯(cuò)的替代品。由于它的內(nèi)存占用少,啟動(dòng)極快,高并發(fā)能力強(qiáng),在互聯(lián)網(wǎng)項(xiàng)目中廣泛應(yīng)用。
上圖簡(jiǎn)單展示了Nginx的部署,Nginx類似網(wǎng)關(guān)。
02正向代理與反向代理正向代理與反向代理有什么區(qū)別昵?我們就不廢話先,直接上圖
這兩圖這么一整,估計(jì)也很難理解清楚那個(gè)是正向代理,那個(gè)是反向代理。那我現(xiàn)在詳細(xì)解釋一下吧。
正向代理形如1圖,我們?cè)赼ws上申請(qǐng)首次注冊(cè)送12月的服務(wù)器,然后它就是我們的VPN了,然后我們通過(guò)它就可以訪問(wèn)YouTube了。不知道大伙能不能明白,正向代理是我們客戶端發(fā)起的,客戶端做出調(diào)整。
反向代理形如2圖,服務(wù)器A,服務(wù)器B,服務(wù)C部署在內(nèi)網(wǎng),我們通過(guò)Nginx暴露一個(gè)外網(wǎng)地址,小伙伴們就可以訪問(wèn)我們了。
這么講不知道能不能解釋清楚,大伙可以繼續(xù)看一下下面這個(gè)比喻:
正向代理:客戶端<一>代理一>服務(wù)端
正向代理簡(jiǎn)單地打個(gè)租房的比方:
A(客戶端)想租C(服務(wù)端)的房子,但是A(客戶端)并不認(rèn)識(shí)C(服務(wù)端)租不到。B(代理)認(rèn)識(shí)C(服務(wù)端)能租這個(gè)房子所以你找了B(代理)幫忙租到這個(gè)房子。
這個(gè)過(guò)程中C(服務(wù)端)不認(rèn)識(shí)A(客戶端)只認(rèn)識(shí)B(代理)C(服務(wù)端)并不知道A(客戶端)租了房子,只知道房子租給了B(代理)。
反向代理:客戶端一>代理<一>服務(wù)端
反向代理也用一個(gè)租房的例子:
A(客戶端)想租一個(gè)房子,B(代理)就把這個(gè)房子租給了他。這時(shí)候?qū)嶋H上C(服務(wù)端)才是房東。B(代理)是中介把這個(gè)房子租給了A(客戶端)。
這個(gè)過(guò)程中A(客戶端)并不知道這個(gè)房子到底誰(shuí)才是房東。
03Master-Worker模式啟動(dòng)Nginx后,其實(shí)就是在80端口啟動(dòng)了Socket服務(wù)進(jìn)行監(jiān)聽(tīng),如圖所示,Nginx涉及Master進(jìn)程和Worker進(jìn)程。
1--進(jìn)程數(shù),建議設(shè)置和CPU個(gè)數(shù)一樣或2倍
2--日志級(jí)別,默認(rèn)error級(jí)別
3--Nginx啟動(dòng)后的pid存放位置
4--配置每個(gè)進(jìn)程的連接數(shù),總的連接數(shù)=worker_processes*worker_connections根據(jù)物理內(nèi)存大小來(lái)配置,默認(rèn)1024
Master進(jìn)程的作用是?
讀取并驗(yàn)證配置文件nginx.conf;管理worker進(jìn)程;
Worker進(jìn)程的作用是?
每一個(gè)Worker進(jìn)程都維護(hù)一個(gè)線程(避免線程切換),處理連接和請(qǐng)求;注意Worker進(jìn)程的個(gè)數(shù)由配置文件決定,一般和CPU個(gè)數(shù)相關(guān)(有利于進(jìn)程切換),配置幾個(gè)就有幾個(gè)Worker進(jìn)程。
由圖1可以看到,我這邊配了兩個(gè)worker_processes,所以有兩個(gè)worker進(jìn)程。
04如何做到高并發(fā)下的高效處理?上文已經(jīng)提及Nginx的worker進(jìn)程個(gè)數(shù)與CPU綁定、worker進(jìn)程內(nèi)部包含一個(gè)線程高效回環(huán)處理請(qǐng)求,這的確有助于效率,但這是不夠的。
作為專業(yè)的程序員,我們可以開(kāi)一下腦洞:BIO/NIO/AIO、異步/同步、阻塞/非阻塞...
要同時(shí)處理那么多的請(qǐng)求,要知道,有的請(qǐng)求需要發(fā)生IO,可能需要很長(zhǎng)時(shí)間,如果等著它,就會(huì)拖慢worker的處理速度。
Nginx采用了Linux的epoll模型,epoll模型基于事件驅(qū)動(dòng)機(jī)制,它可以監(jiān)控多個(gè)事件是否準(zhǔn)備完畢,如果OK,那么放入epoll隊(duì)列中,這個(gè)過(guò)程是異步的。worker只需要從epoll隊(duì)列循環(huán)處理即可。
05如何做到熱部署?所謂熱部署,就是配置文件nginx.conf修改后,不需要stopNginx,不需要中斷請(qǐng)求,就能讓配置文件生效?。╪ginx-sreload重新加載|nginx-t檢查配置|nginx-sstop停止nginx)
通過(guò)上文我們已經(jīng)知道worker進(jìn)程負(fù)責(zé)處理具體的請(qǐng)求,那么如果想達(dá)到熱部署的效果,可以想象:
方案一:
修改配置文件nginx.conf后,主進(jìn)程master負(fù)責(zé)推送給woker進(jìn)程更新配置信息,woker進(jìn)程收到信息后,更新進(jìn)程內(nèi)部的線程信息。(有點(diǎn)valatile的味道)
方案二:
修改配置文件nginx.conf后,重新生成新的worker進(jìn)程,當(dāng)然會(huì)以新的配置進(jìn)行處理請(qǐng)求,而且新的請(qǐng)求必須都交給新的worker進(jìn)程,至于老的worker進(jìn)程,等把那些以前的請(qǐng)求處理完畢后,kill掉即可。
Nginx采用的就是方案二來(lái)達(dá)到熱部署的!
模擬一個(gè)例子:
首先在本地模擬一個(gè)線上需要升級(jí)Nginx的環(huán)境,假設(shè)舊版本為nginx-1.0.15,需要升級(jí)到nginx-1.16.0。
開(kāi)始之前,先牢記一下以下幾個(gè)命令:
-HUP平滑啟動(dòng)(相當(dāng)于reload)
-USR2平滑升級(jí)可執(zhí)行程序,主要用在版本升級(jí)
-WINCH從容關(guān)閉工作進(jìn)程
-USR1重新打開(kāi)日志文件,主要用在日志切割(相當(dāng)于reopen)
配置舊版本
#下載nginx-1.0.15
wgethttp://nginx.org/download/nginx-1.0.15.tar.gz
#解壓壓縮包
tar-zxfnginx-1.0.15.tar.gz
#進(jìn)入解壓后的目錄
cdnginx-1.0.15
#配置nginx
./configure--prefix=/home/nginx
#編譯安裝
make&&makeinstall
#運(yùn)行nginx
sudo/home/nginx/sbin/nginx
此時(shí)訪問(wèn)服務(wù)器地址應(yīng)該可以看到nginx的歡迎頁(yè)面了。
獲得新版本二進(jìn)制
#下載nginx-1.16.0
wgethttp://nginx.org/download/nginx-1.16.0.tar.gz
#解壓壓縮包
tar-zxfnginx-1.16.0
#進(jìn)入解壓后的目錄
cdnginx-1.16.0/
#配置nginx
./configure--prefix=/home/nginx
#只編譯不需要安裝
make
在編譯后的objs目錄中,可以看到二進(jìn)制文件nginx。
熱部署
經(jīng)過(guò)以上步驟,我們實(shí)現(xiàn)了一個(gè)正在運(yùn)行的舊版本nginx和編譯完成的新版本nginx二進(jìn)制執(zhí)行文件。
熱部署的流程是:
備份舊的nginx可執(zhí)行文件
新的nginx可執(zhí)行文件直接替換舊的(此時(shí)舊的nginx進(jìn)程還在運(yùn)行)
向nginxmaster進(jìn)程發(fā)送熱部署信號(hào),新的nginx進(jìn)程啟動(dòng),舊的worker不再就收請(qǐng)求。
關(guān)閉舊的worker進(jìn)程,完成熱部署。
#備份
cp/home/nginx/sbin/nginx/home/nginx/sbin/nginx.old
#替換
cp-fobjs/nginx/home/nginx/sbin/nginx
#查看masterpid
ps-ef|grepnginx
root237121021:21?00:00:00nginx:masterprocess/home/nginx/sbin/nginx
nobody2371523712021:21?00:00:00nginx:workerprocess
#發(fā)送熱部署信號(hào),這里masterpid替換為自己查詢到的
kill-USR223712
#查看當(dāng)前nginx進(jìn)程情況,27522就是新的master進(jìn)程
ps-ef|grepnginx
root237121021:21?00:00:00nginx:masterprocess/home/nginx/sbin/nginx
nobody2371523712021:21?00:00:00nginx:workerprocess
root2752223712021:41?00:00:00nginx:masterprocess/home/nginx/sbin/nginx
nobody2752427522021:41?00:00:00nginx:workerprocess
#關(guān)閉舊的worker
kill-WINCH23712
#再次查看進(jìn)程,可以發(fā)現(xiàn)舊的worker進(jìn)程關(guān)閉了
ps-ef|grepnginx
root237121021:21?00:00:00nginx:masterprocess/home/nginx/sbin/nginx
root2752223712021:41?00:00:00nginx:masterprocess/home/nginx/sbin/nginx
nobody2752427522021:41?00:00:00nginx:workerprocess
保留舊的master進(jìn)程是為了在新的版本存在問(wèn)題時(shí),可以快速回退到原版本。如果發(fā)現(xiàn)問(wèn)題要緊急回滾呢?
cp-fnginx.oldnginx
#拉起舊版本的worker進(jìn)程(-HUP相當(dāng)于-sreload)
kill-HUPold_master_pid
#讓新版本的worker不再接受請(qǐng)求
kill-USR2new_master_pid
#關(guān)閉新版本的woker進(jìn)程
kill-WINCHnew_master_pid
如果確認(rèn)無(wú)誤要退出老版本的nginx,可以執(zhí)行命令
kill-QUITold_master_pid
好了,文章到這里就結(jié)束啦,如果本次分享的window nginx啟動(dòng)命令和nginx怎么啟動(dòng)問(wèn)題對(duì)您有所幫助,還望關(guān)注下本站哦!
本文鏈接:http://xinin56.com/ruanjian/2883.html