新聞中心
Nginx是一個高性能的HTTP和反向代理服務(wù)器,適合高并發(fā)訪問的Web應(yīng)用服務(wù)器。在使用Linux系統(tǒng)的時候,Nginx是一個非常常見的Web服務(wù)器,但有時會出現(xiàn)Nginx不能啟動的情況,這是因?yàn)镹ginx的配置或操作系統(tǒng)環(huán)境等問題引起的。我們可以通過以下方法解決這些問題。

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、耿馬ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的耿馬網(wǎng)站制作公司
1.檢查錯誤日志
當(dāng)Nginx不能啟動時,首先需要檢查錯誤日志,日志文件通常位于 /var/log/nginx/error.log,打開日志文件,查找錯誤消息。常見的錯誤消息包括讀取配置文件錯誤、端口沖突等。根據(jù)日志文件的錯誤消息,我們可以準(zhǔn)確快速地找到問題所在。
2.檢查端口是否被占用
如果Nginx無法啟動,可能是由于端口被占用??梢允褂胣etstat命令查看當(dāng)前正在監(jiān)聽的端口和對應(yīng)的進(jìn)程。例如,要檢查TCP端口80是否被占用,可以使用以下命令:
“`
netstat -ntlp | grep :80
“`
如果端口80被占用,則會顯示正在使用該端口的進(jìn)程的詳細(xì)信息。需要?dú)⒌粽加枚丝?0的進(jìn)程,以便Nginx能夠正常啟動。
3.檢查配置文件
如果Nginx不能啟動,可能是由于配置文件存在語法錯誤或配置錯誤。一般情況下,Nginx配置文件位于/etc/nginx/nginx.conf。使用以下命令檢查Nginx配置文件的語法是否正確:
“`
nginx -t -c /etc/nginx/nginx.conf
“`
如果配置文件存在語法錯誤,則會提示錯誤消息。首先修復(fù)配置文件中的語法錯誤,然后再次檢查。
4.檢查文件和文件夾權(quán)限
在Linux系統(tǒng)中,文件和文件夾的權(quán)限對Nginx的啟動和運(yùn)行非常重要。如果Nginx無法啟動,請檢查Nginx和其包含文件和文件夾的權(quán)限。使用以下命令檢查文件和文件夾的權(quán)限:
“`
ls -l /path/to/nginx/files
“`
如果文件和文件夾沒有正確的權(quán)限,則會提示錯誤消息。為了修復(fù)權(quán)限問題,可以使用以下命令:
“`
sudo chown -R username:group /path/to/nginx/files
sudo chmod -R 755 /path/to/nginx/files
“`
其中,username指的是你的用戶名,group指的是你的用戶組。
5.查看啟動日志
在Nginx啟動時,有時會發(fā)生一些錯誤,但錯誤消息沒有顯示在錯誤日志文件中。這時,我們可以查找啟動日志以找到問題所在。啟動日志通常位于 /var/log/nginx/access.log。使用以下命令查看啟動日志:
“`
tl -f /var/log/nginx/access.log
“`
如果沒有找到錯誤日志,但啟動日志中包含錯誤消息,則可以根據(jù)消息修復(fù)問題。
6.重裝或升級Nginx
如果Nginx無法啟動,我們可以嘗試重新安裝或升級Nginx。使用以下命令升級Nginx:
“`
sudo apt-get update
sudo apt-get upgrade nginx
“`
如果升級后Nginx仍然無法啟動,則可以嘗試刪除Nginx并執(zhí)行重新安裝。
在使用Linux系統(tǒng)中,Nginx是非常常見的Web服務(wù)器,但有時可能會出現(xiàn)Nginx無法啟動的情況。這時,我們需要通過檢查錯誤日志、端口是否被占用、配置文件、文件和文件夾權(quán)限、啟動日志以及重新安裝或升級Nginx等方式來解決問題。通過這些方法,可以解決大多數(shù)Nginx無法啟動的問題,讓我們的Web應(yīng)用程序更加穩(wěn)定和可靠。
相關(guān)問題拓展閱讀:
- 真心求助.nginx錯誤
- Linux系統(tǒng)問題NGINX?
- nginx做流媒體,安裝沒問題,啟動成功,但是無法訪問到頁面!
真心求助.nginx錯誤
Nginx服務(wù)器錯誤一般有以下幾點(diǎn)原因:
1、請求的header過大。nginx默認(rèn)的header長度上限是4k,如果超過了這個值,nginx會直接返回400錯誤.
解決方法:配置nginx.conf相關(guān)設(shè)置??梢酝ㄟ^以下2個參數(shù)來調(diào)整header上限:
client_header_buffer_size 16k;large_client_header_buffers 4 16k。
2、上傳文件過程中出現(xiàn)錯誤。這時瀏覽器顯示“413 Request Entity Too Large”。這是因?yàn)闆]有設(shè)置client_max_body_size,這個參數(shù)默認(rèn)只是1M,也就是說發(fā)布的文章內(nèi)容大小不能超過1M。
解決方法:增加耐滲辯如下兩行到nginx.conf的http{}段, 增大nginx上傳文件大小限制:設(shè)置允許發(fā)布內(nèi)容為8M:client_max_body_size 8M;client_body_buffer_size 128k。
另外如果運(yùn)行的是php,那么還要檢查php.ini,這個大小client_max_body_size要和php.ini中的如下值的更大值一致或者稍大,這樣就不會因?yàn)樘峤粩?shù)據(jù)大小不一致出現(xiàn)的錯誤:post_max_size = 8M;upload_max_filesize = 6M。
修改完配置后,別忘記重新加載。
3、客戶端在為等到服務(wù)器相應(yīng)返回前就關(guān)閉了客戶端描述符。一般出現(xiàn)在客戶端設(shè)置超時后,服務(wù)器主動關(guān)閉。
解決方法:根據(jù)實(shí)際Nginx后端服務(wù)器的處理時間修改客戶端超時時間。
4、腳本錯誤(php語法錯誤、lua語法錯誤)。
解決方法:查看nginx_err_log php_err_log。
5、訪問量過大,系統(tǒng)資源限制,不能打開過多文件。 磁盤空間不足昌缺。(access log開啟可能導(dǎo)致磁盤滿溢,服務(wù)器主動關(guān)閉)。
解決方法:修改/etc/sysctl.conf文件,并使用下面的命令確認(rèn): #sysctl -p。要使喊散 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動文件中。
6、后端服務(wù)無法處理,業(yè)務(wù)中斷。
解決方法:從后端日志獲取錯誤原因,解決后端服務(wù)器問題。
7、后端服務(wù)器在超時時間內(nèi),未響應(yīng)Nginx代理請求。
解決方法:根據(jù)后端服務(wù)器實(shí)際處理情況,調(diào)正后端請求超時時間。
8、網(wǎng)站頁面緩存過大。
解決方法:配置nginx.conf相關(guān)設(shè)置:fastcgi_buffers 8 128k;send_timeout 60。
目的:
在Nginx服務(wù)器出現(xiàn)故障時,能快速定位并解決相關(guān)錯誤。
保密:
本文檔僅供內(nèi)部使用,請勿外傳
概述:
Nginx常見錯誤與問題之解決方法技術(shù)指南。
安裝環(huán)境:
系統(tǒng)環(huán)境:redhat enterprise 6.5 64bit
1、Nginx 常見啟動錯誤
有的時候初次安裝nginx的時候會報這樣的錯誤
in/nginx -c conf/nginx.conf
報錯內(nèi)容:in/nginx: error while loading shared libraries: libpcre.so.1:
cannot open shared object file: No such file or directory
啟動時如果報異常error while loading shared libraries: libpcre.so.1: cannot open
shared object file: No such file or directory 這說明我們的環(huán)境還不是和啟動需要
小小的配置一下
解決方法(直接運(yùn)行):
32位系統(tǒng) # ln -s /usr/local/lib/libpcre.so.1 /lib
64位系統(tǒng) # ln -s /usr/local/lib/libpcre.so.1 /lib64
然后執(zhí)行ps -ef | grep nginx 查看nginx進(jìn)程確認(rèn)是否真的已經(jīng)啟動了,在進(jìn)程列表里會
有最起碼兩個, worker(nginx工作進(jìn)程)和master(nginx主進(jìn)程)
root:24 ? 00:00:00 nginx: master process in/nginx -c
conf/nginx.conf
nginx2:24 ? 00:00:00 nginx: worker process
root02:30 pts/1 00:00:00 grep nginx
NGINX 就 OK了
2、400 bad request錯誤的原因和解肢穗決辦法
配置nginx.conf相關(guān)設(shè)置如下.
client_header_buffer_size 16k;
large_client_header_buffers 4 64k;
根據(jù)具體情況調(diào)整,一般適當(dāng)調(diào)整值就可以。
3、Nginx 502 Bad Gateway錯誤
在php.ini和php-fpm.conf中分別有這樣兩個配置項:max_execution_time和request_terminate_timeout。
這兩項都是用來配置一個PHP腳本的更大執(zhí)行時間的。當(dāng)超過這個時間時,PHP-FPM不只會終止腳本的執(zhí)行,罩友
還會終止執(zhí)行腳本的Worker進(jìn)程。所以Nginx會發(fā)現(xiàn)與自己通信的連接斷掉了,就會返回給客戶端502錯誤。
以PHP-FPM的request_terminate_timeout=30秒時為例,報502 Bad Gateway錯誤的具體信息如下:
1)Nginx錯誤訪問日志:
/物饑槐09/19 01:09:00 27600#0: *78887 recv() failed (104: Connection reset by peer) while reading response header from upstream,
client: 192.168.1.101, server: test.com, request: “POST /index.php HTTP/1.1″, upstream: ”
host: “test.com”, referrer: “
“
2)PHP-FPM報錯日志:
WARNING: childexited on signal 15 (SIGTERM) after 21008.seconds from start
所以只需將這兩項的值調(diào)大一些就可以讓PHP腳本不會因?yàn)閳?zhí)行時間長而被終止了。request_terminate_timeout可以覆蓋max_execution_time,
所以如果不想改全局的php.ini,那只改PHP-FPM的配置就可以了。
此外要注意的是Nginx的upstream模塊中的max_fail和fail_timeout兩項。有時Nginx與上游服務(wù)器(如Tomcat、FastCGI)的通信只是偶然斷掉了,
但max_fail如果設(shè)置的比較小的話,那么在接下來的fail_timeout時間內(nèi),Nginx都會認(rèn)為上游服務(wù)器掛掉了,都會返回502錯誤。
所以可以將max_fail調(diào)大一些,將fail_timeout調(diào)小一些。
4、Nginx出現(xiàn)的413 Request Entity Too Large錯誤
這個錯誤一般在上傳文件的時候會出現(xiàn),
編輯Nginx主配置文件Nginx.conf,找到http{}段,添加
client_max_body_size 10m; //設(shè)置多大根據(jù)自己的需求作調(diào)整.
如果運(yùn)行php的話這個大小client_max_body_size要和php.ini中的如下值的更大值一致或
者稍大,這樣就不會因?yàn)樘峤粩?shù)據(jù)大小不一致出現(xiàn)的錯誤。
post_max_size = 10M
upload_max_filesize = 2M
5、解決504 Gateway Time-out(nginx)
遇到這個問題是在升級discuz論壇的時候遇到的一般看來, 這種情況可能是由于nginx默認(rèn)的
fastcgi進(jìn)程響應(yīng)的緩沖區(qū)太小造成的, 這將導(dǎo)致fastcgi進(jìn)程被掛起, 如果你的fastcgi服務(wù)
對這個掛起處理的不好, 那么最后就極有可能導(dǎo)致504 Gateway Time-out,現(xiàn)在的網(wǎng)站, 尤其某
些論壇有大量的回復(fù)和很多內(nèi)容的, 一個頁面甚至有幾百K。默認(rèn)的fastcgi進(jìn)程響應(yīng)的緩沖區(qū)
是8K, 我們可以設(shè)置大點(diǎn)在nginx.conf里, 加入: fastcgi_buffers 8 128k這表示設(shè)置
fastcgi緩沖區(qū)為8×128
當(dāng)然如果您在進(jìn)行某一項即時的操作, 可能需要nginx的超時參數(shù)調(diào)大點(diǎn),例如設(shè)置成90秒:
send_timeout 90;只是調(diào)整了這兩個參數(shù), 結(jié)果就是沒有再顯示那個超時, 效果不錯
Nginx中關(guān)于與上游服務(wù)器通信超時時間的配置factcgi_connect/read/send_timeout。
以Nginx超時時間為90秒,PHP-FPM超時時間為300秒為例,報504 Gateway Timeout錯誤時的Nginx錯誤訪問日志如下:
/09/19 00:55:51 27600#0: *78877 upstream timed out (110: Connection timed out) while reading response header from upstream,
client: 192.168.1.101, server: test.com, request: “POST /index.php HTTP/1.1″, upstream: ”
host: “test.com”, referrer: “
“
調(diào)高這三項的值(主要是read和send兩項,默認(rèn)不配置的話Nginx會將超時時間設(shè)為60秒)之后,504錯誤也解決了。
而且這三項配置可以配置在http、server級別,也可以配置在location級別。擔(dān)心影響其他應(yīng)用的話,就配置在自己應(yīng)用的location中吧。
要注意的是factcgi_connect/read/send_timeout是對FastCGI生效的,而proxy_connect/read/send_timeout是對proxy_pass生效的。
配置舉例:
location ~ \.php$ {
root /home/cdai/test.com;
include fastcgi_params;
fastcgi_connect_timeout;
fastcgi_read_timeout0;
fastcgi_send_timeout0;
fastcgi_passunix:/dev/shm/php-fcgi.sock;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME /home/cdai/test.com$fastcgi_script_name;
}
6、如何使用Nginx Proxy
朋友一臺服務(wù)器運(yùn)行tomcat 為8080端口,IP:192.168.1.2:8080,另一臺機(jī)器
IP:192.168.1.8. 朋友想通過訪問
即可訪問tomcat服務(wù).配置如下:
在192.168.1.8的nginx.conf上配置如下:
server {
listen 80;
server_name java.linuxtone.org
location / {
proxy_pass
include /usr/local/nginx/conf/proxy.conf;
}
}
7. 安裝完成Nginx后無法站外訪問?
剛安裝好nginx一個常見的問題是無法站外訪問,本機(jī)wget、telnet都正常。而服務(wù)器之外,不管是局域網(wǎng)的其它主機(jī)還是互聯(lián)網(wǎng)的主機(jī)都無法訪問站點(diǎn)。如果用telnet的話,提示:
正在連接到192.168.0.xxx…不能打開到主機(jī)的連接, 在端口 80: 連接失敗
如果用wget命令的話,提示:
Connecting to 192.168.0.100:80… failed: No route to host.
如果是以上的故障現(xiàn)象,很可能是被CentOS的防火墻把80端口攔住了,嘗試執(zhí)行以下命令,打開80端口:
iptables -I INPUT -p tcp –dport 80 -j ACCEPT
然后用:
/etc/init.d/iptables status
查看當(dāng)前的防火墻規(guī)則,如果發(fā)現(xiàn)有這樣一條:
ACCEPT tcp.0.0.0/.0.0.0/tcp dpt:80
就說明防火墻規(guī)則已經(jīng)添加成功了,再在站外訪問就正常了。
8、如何關(guān)閉Nginx的LOG
access_log /dev/null
error_log /dev/null
此外,錯誤日志主要記錄客戶端訪問nginx出錯時的日志,通過錯誤日志,能快速定位客戶端訪問異常!
錯誤信息
錯誤說明
“upstream prematurely(過早的) closed connection”
請求uri的時候出現(xiàn)的異常,是由于upstream還未返回應(yīng)答給用戶時用戶斷掉連接造成的,對系統(tǒng)沒有影響,可以忽略
“recv() failed (104: Connection reset by peer)”
(1)服務(wù)器的并發(fā)連接數(shù)超過了其承載量,服務(wù)器會將其中一些連接Down掉;
(2)客戶關(guān)掉了瀏覽器,而服務(wù)器還在給客戶端發(fā)送數(shù)據(jù);
(3)瀏覽器端按了Stop
“(111: Connection refused) while connecting to upstream”
用戶在連接時,若遇到后端upstream掛掉或者不通,會收到該錯誤
“(111: Connection refused) while reading response header from upstream”
用戶在連接成功后讀取數(shù)據(jù)時,若遇到后端upstream掛掉或者不通,會收到該錯誤
“(111: Connection refused) while sending request to upstream”
Nginx和upstream連接成功后發(fā)送數(shù)據(jù)時,若遇到后端upstream掛掉或者不通,會收到該錯誤
“(110: Connection timed out) while connecting to upstream”
nginx連接后面的upstream時超時
“(110: Connection timed out) while reading upstream”
nginx讀取來自upstream的響應(yīng)時超時
“(110: Connection timed out) while reading response header from upstream”
nginx讀取來自upstream的響應(yīng)頭時超時
“(110: Connection timed out) while reading upstream”
nginx讀取來自upstream的響應(yīng)時超時
“(104: Connection reset by peer) while connecting to upstream”
upstream發(fā)送了RST,將連接重置
“upstream sent invalid header while reading response header from upstream”
upstream發(fā)送的響應(yīng)頭無效
“upstream sent no valid HTTP/1.0 header while reading response header from upstream”
upstream發(fā)送的響應(yīng)頭無效
“client intended to send too large body”
用于設(shè)置允許接受的客戶端請求內(nèi)容的更大值,默認(rèn)值是1M,client發(fā)送的body超過了設(shè)置值
“reopening logs”
用戶發(fā)送kill -USR1命令
“gracefully shutting down”,
用戶發(fā)送kill -WINCH命令
“no servers are inside upstream”
upstream下未配置server
“no live upstreams while connecting to upstream”
upstream下的server全都掛了
“SSL_do_handshake() failed”
SSL握手失敗
“ngx_slab_alloc() failed: no memory in SSL session shared cache”
ssl_session_cache大小不夠等原因造成
“could not add new SSL session to the session cache while SSL handshaking”
Linux系統(tǒng)問題NGINX?
就是把外部流量分配到內(nèi)部的多個服務(wù)器上去,達(dá)到均衡的效果
反向代理是個替棗寬族巧悄身凳弊
nginx做流媒體,安裝沒問題,啟動成功,但是無法訪問到頁面!
如態(tài)嘩蘆果windows下可以蘆畢,linux不可以,那只能從防火帆帶墻、selinux入手。
防火墻關(guān)掉, 使用命令 /etc/init.d/iptables stop
selinux關(guān)掉,使用命令 setenforce 0
關(guān)于linux 下nginx無法啟動不了的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機(jī)房服務(wù)器托管租用。
網(wǎng)站欄目:Linux下Nginx不能啟動的解決方法 (linux 下nginx無法啟動不了)
文章鏈接:http://www.dlmjj.cn/article/ccogepe.html


咨詢
建站咨詢
