【问题标题】:nginx err_connection_refused, can anyone help me?nginx err_connection_refused,任何人都可以帮助我吗?
【发布时间】:2022-04-26 09:02:30
【问题描述】:

用 php、mysql 等安装了我的旧站点,一切正常,但我的站点无法从我的局域网外部访问。进行了大量更改并为我的 nginx 站点启用和 php7.4 尝试了至少 100 个配置,但没有任何帮助:/。我收到 502 或连接被拒绝错误。在 ubuntu 20.04 上运行

检查这个默认容器:

    server {
    listen 80; 
    root /var/www; 
    index index.html index.php index.htm index.nginx-debian.html;
    server_name localhost;
    location / {
        try_files $uri $uri/ =404;
    }
    
location ~ [^/]\.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    #fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    fastcgi_pass 127.0.0.1:9000;
    include snippets/fastcgi-php.conf;  
        #fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
}
}

和 php www.conf(都测试过):

...
;listen = /var/run/php/php7.4-fpm.sock
listen = 0.0.0.0:9000
...

netstat -lntp:

    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      9194/php-fpm: maste 
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1086/mysqld         
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9151/nginx: master  
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      795/systemd-resolve 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      900/cupsd           
tcp        0      0 127.0.0.1:9050          0.0.0.0:*               LISTEN      1038/tor            
tcp6       0      0 :::33060                :::*                    LISTEN      1086/mysqld         
tcp6       0      0 ::1:631                 :::*                    LISTEN      900/cupsd    

你们有什么提示,我可能会错过吗?

最好的问候和对不起我的英语不好

【问题讨论】:

    标签: php nginx webserver


    【解决方案1】:

    配置一个带有错误日志的文件,例如:

    server {
    error_log /path/server.error.log;
    
    listen 80; 
    root /var/www; 
    index index.html index.php index.htm index.nginx-debian.html;
    server_name local...
    

    然后,重启 nginx 并检查 server.error.log 文件。 通过这些更改,您可以了解正在发生的事情,

    【讨论】:

    • 感谢您的回复。已经得到我的错误日志,没有提示没有想法 2020/08/28 23:05:58 [emerg] 9103#9103:“fastcgi_index”指令在 /etc/nginx/sites-enabled/default:30 2020/08/ 中重复28 23:06:29 [emerg] 9112#9112:在 /etc/nginx/sites-enabled/default:26 2020/08/29 01:37:46 [emerg] 8934 的上游“php-fpm”中找不到主机#8934: open() "/path/server.error.log" 失败(2:没有这样的文件或目录)
    【解决方案2】:
    sudo tail -f /var/log/php7.*-fpm.log
    ngnix.conf => php-fpm socet?
    location ~ \.php$ {
    fastcgi_pass unix:/var/run/php7.0-fpm.sock;
    include fastcgi_params;
    } 
    

    https://saribzhanov.ru/tehno/nastraivaem-rabotu-php-fpm-na-port-ili-na-soket/ 位置 / { ...

    location ~ [^/]\.php(/|$) {
        ...
    
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        include         /etc/nginx/fastcgi_params;
    }
    

    } 但是

    netstat -tulpn | grep 9000

    ... /etc/php/7.3/fpm/pool.d/www.conf => 听 = 127.0.0.1:9000

    /etc/php/7.3/fpm/pool.d/www.conf => 听 = /var/run/fastcgi.sock

    listen.allowed_clients = 127.0.0.1 => 取消注释

    在 nginx.conf 中 地点 / { ...

    location ~ [^/]\.php(/|$) {
        ....
    
        fastcgi_pass    unix:/var/run/php/php7.3-fpm.sock;
        fastcgi_index   index.php;
        include         /etc/nginx/fastcgi_params;
    }
    

    } 看看“fastcgi_pass” nginx.conf 地点 / { fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; //127.0 替换为 php7.*-fpm.sock !看起来 nginx 看不到你的 php-fpm

    【讨论】:

    • 感谢您的回复,仍然出现 502 错误 -> ngnix.conf => php-fpm socet 是什么意思?
    • 能否请您发布最终的 > 位置 ~ [^/]\.php(/|$) {
    【解决方案3】:

    看起来 nginx 看不到 yuor php-fpm 所以,在硬盘上找到 php-fpm 并尝试将 pass 作为 fastcgi_pass 放入 nginx.conf 以使其看起来像: fastcgi_pass unix:/var/run/php/php7.*-fpm.sock;

    【讨论】:

    • 一开始我说它在 ubuntu 20.04 上运行(台式机版本在我的笔记本电脑上)我的问题是如果只有 .html 文件我可以访问网络服务器,但如果我不能运行 php 文件使用本地主机以外的其他设备访问我局域网中的 der webserver,本地 ip 自动更改为本地主机,我收到错误拒绝错误
    • 感谢您仍然尝试给我支持。主要问题是,我确实正确设置了 php 和 nginx 部分,但是 DIR 中的文件:php7.4-fpm.sock 和 php-fpm.sock 是空的(0 字节)。我应该使用php7.4-fpm.sock,对吧?这是唯一的事情,如果我尝试从自己的本地 IP 访问它,nginx 会将我重定向到“localhost”。除此之外,一切都完美无缺。它慢慢地疯狂!!!!伙计,我可以录制视频..
    猜你喜欢
    • 2019-10-12
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 2015-09-14
    • 2021-06-24
    • 2016-04-29
    相关资源
    最近更新 更多