Php

Nginx 無法從 localhost 獲得,但可通過網路獲得

  • November 22, 2018

擁有安裝了 nginx 和 php-fpm 的伺服器。一些腳本需要通過 curl 訪問部分站點。但它失敗了。我試圖在伺服器上執行 curl:

curl -v -i alexcoder.info
* About to connect() to alexcoder.info port 80 (#0)
*   Trying 88.198.156.238...
* Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host

但從可用的網路站點:

curl -v -i alexcoder.info
* Rebuilt URL to: alexcoder.info/
* Adding handle: conn: 0x702b10
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x702b10) send_pipe: 1, recv_pipe: 0
* About to connect() to alexcoder.info port 80 (#0)
*   Trying 88.198.156.238...
* Connected to alexcoder.info (88.198.156.238) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.32.0
> Host: alexcoder.info
> Accept: */*
> 
< HTTP/1.1 200 OK

HTTP/1.1 200 正常

nginx 日誌不包含任何關於此的錯誤。我試圖刷新 iptables 規則,但沒有效果。

它可能是什麼?

多台伺服器

您需要為您希望 Nginx 響應的每個網路介面設置一個偵聽器:

server {
   listen       80;
   server_name  localhost;

   #charset koi8-r;

   #access_log  logs/host.access.log  main;

   location / {
       root   html;
       index  index.html index.htm;
   }

您可能已經有一個server {..}部分正在偵聽您的系統在獲得 IP 地址時綁定到的實際介面。

多個監聽器

您還可以將多Listen行添加到一個server {..}部分,如下所示:

例子

listen     *:80;

或者

聽本地主機:80;聽 127.0.0.1:80;聽 12.34.56.78:80;

我可能會使用第二種方法來做到這一點!有關更多範例,請參閱本文,標題為:- Basic Nginx Configuration

參考

引用自:https://unix.stackexchange.com/questions/117128