解決nginx與uwsgi連接出現(xiàn)的connect() failed (111: Connection refused)錯(cuò)誤
近期在使用nginx、uwsgi和django搭建網(wǎng)站時(shí),有用戶反饋nginx日志中出現(xiàn)了`connect() failed (111: Connection refused)`的錯(cuò)誤提示。這種錯(cuò)誤一
近期在使用nginx、uwsgi和django搭建網(wǎng)站時(shí),有用戶反饋nginx日志中出現(xiàn)了`connect() failed (111: Connection refused)`的錯(cuò)誤提示。這種錯(cuò)誤一般發(fā)生在nginx嘗試連接到upstream時(shí)遭到拒絕,可能是由于或配置有誤導(dǎo)致的。下面將介紹如何診斷并解決這一問題。
確認(rèn)配置
首先,我們需要檢查文件的配置是否正確。在中,應(yīng)包含類似以下內(nèi)容的配置信息:
```
[uwsgi]
socket 127.0.0.1:8077
chdir /root/env/demo
wsgi-file
processes 2
threads 4
chmod-socket 664
vacuum true
```
確保以上配置項(xiàng)正確無誤,并且與實(shí)際情況相符。特別要注意socket地址、項(xiàng)目路徑等參數(shù)是否設(shè)置正確。
檢查配置
其次,我們需要審查文件的配置。以下是一個(gè)簡(jiǎn)單的配置示例:
```
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
charset utf-8;
location / {
root /root/env/demo;
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8077;
}
location /static {
alias /root/env/ht/collected_static;
}
location /media {
alias /root/env/ht/media;
}
}
```
請(qǐng)確認(rèn)以上配置是否正確,尤其是upstream地址與中設(shè)置的socket地址是否匹配。同時(shí),檢查nginx的各項(xiàng)配置是否正確引入。
SELinux狀態(tài)檢查與處理
如果以上方法仍未解決問題,可以考慮查看SELinux的狀態(tài)。運(yùn)行以下命令來獲取當(dāng)前SELinux狀態(tài):
```
getenforce
```
如果顯示為enabled,說明SELinux處于開啟狀態(tài)。此時(shí),您可以通過修改`/etc/selinux/config`文件,將`SELINUXenforcing`改為`SELINUXdisabled`,以禁用SELinux來解決`failed (13: Permission denied) while connecting to upstream`的問題。
通過逐步檢查并調(diào)整配置文件,相信您能夠成功解決`connect() failed (111: Connection refused)`錯(cuò)誤,確保nginx與uwsgi正常連接,提升網(wǎng)站的穩(wěn)定性與性能。