VM 上的 nginx Web 服务器无法访问主机

VM 上的 nginx Web 服务器无法访问主机

我的笔记本电脑运行 Ubuntu 14.10 桌面并在libvirtVM 中托管 14.10 服务器(使用 设置virt-manager)。我以最小虚拟服务器模式安装了它,仅使用openssh-server.安装后,我可以轻松地通过 SSH 连接到它,并添加 nginx 稳定 PPA 并安装它。

问题是这样的:浏览器说“连接尝试被拒绝”。这不是网络问题,因为我可以使用 SSH,但我不知道可能是什么问题。我没有去任何地方iptables,也不知道它的后继者叫什么,它的整个网络配置都归功于libvirt网络defaultDHCP。

请随时询问您需要了解的任何配置详细信息。

答案1

我想通了这个问题。正如我所怀疑的,这与网络堆栈无关,责任完全归咎于 nginx 配置错误。我清除了所有配置文件并重新安装了 nginx,结果发现,导致 nginx 根本拒绝工作的原因不是一个,而是两个。

首先是/etc/nginx/sites-enabled/www(唯一启用的虚拟主机);事实证明我有两个fastcgi_pass定义:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php5-cgi alone:
    fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
}

一切都很好,直到我/etc/nginx/nginx.conf在“基本设置”部分下编辑了以下几行:

client_max_body_size  4096k;
client_header_timeout 10;
client_body_timeout   10;
keepalive_timeout     10 10;
send_timeout          10;

现在我不知道到底是哪一行以及为什么它们导致了这个问题,我懒得去理会。我正在关注一个旧的和过时的指南(2012 年发布,按照 IT 标准来说相当古老)设置我的 Web 服务器堆栈,这个故事有寓意吗?不要盲目遵循指南,并准确检查每条指令的作用以及它是否仍然与您正在使用的软件版本相关。啊,但这fastcgi_pass是我的错误,不是由于指南造成的。

答案2

尝试使用此配置:

try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;

将“keepalive_timeout 10 10;”编辑为

keepalive_timeout 10;

您可以编辑最大身体尺寸:

client_max_body_size 20m;

相关内容