
我是一名完全沒有伺服器經驗的開發人員,我正在從事的這個專案是我第一次涉足伺服器世界。基本上我必須在 Ubuntu 上運行 Nginx 的 Linode 伺服器上在線託管一個 API。我在設定一個簡單的伺服器區塊來託管 html 索引頁時遇到了麻煩,其中只有一個 h1 標籤說「你好」。我已經閱讀並閱讀了有關使簡單伺服器區塊工作的各種教程,我甚至讓這些區塊在我的本地電腦上工作,但在使其在遠端伺服器上工作時遇到問題。
我將向您展示一些在 Linode 上無法正常工作的區塊:
首先,一個簡單的區塊來伺服器靜態 html 頁面,這適用於我的本機電腦:
server {
listen 8005;
index index.html;
root /srv/www/site;
}
另一個簡單的塊:
server {
listen [server ip]:8006;
server_name "";
index index.html;
root /srv/www/site;
location ~/ {
root /srv/www/site;
}
}
用於服務 php 的區塊(在本機工作):
server {
listen [server ip]:8007;
server_name "";
index index.php index.html index.htm;
root /srv/www/site;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~* \.php$ {
try_files $uri /index.php;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
每當我嘗試透過瀏覽器存取它們時,我都會遇到伺服器連線逾時。我沒有任何 DNS 設置,所以我嘗試使用伺服器 IP 和連接埠號碼來存取它:
[server ip]:[port]
或者
[server ip]:[port]/index.html
但什麼也沒得到。
因此,可能導致問題的一件事是伺服器上已經託管了另一個應用程式。它有自己的區塊並在自己的連接埠上運行。它有自己的 DNS 名稱指向它。但這些都不重要吧?因為每個伺服器區塊基本上都是一個虛擬伺服器或建立一個虛擬網域。透過ip和連接埠存取它應該可以正常工作,但它不起作用!
我能想到的就這些了,我在這方面的知識已經用盡了,我需要聰明人的幫助!
答案1
嘗試使用 127.0.0.1:8005 從同一伺服器存取 - 如果它有效,那麼它就是你的 IP 表。在這種情況下,請嘗試執行以下命令:iptables -A INPUT -i eth0 -p tcp --dport 8005 -j ACCEPT
開啟連接埠。