我是一名完全没有服务器经验的开发人员,我正在从事的这个项目是我第一次涉足服务器领域。基本上,我必须在运行 Ubuntu 上的 Nginx 的 Linode 服务器上在线托管 API。而且,我无法设置一个简单的服务器块来托管 html 索引页,其中只有一个 h1 标签写着“hello”。我已经关注并阅读了有关如何使简单服务器块正常工作的各种教程,我甚至在本地机器上运行了这些块,但在使其在远程服务器上工作时遇到了问题。
我将向您展示一些在 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
打开端口。