
Я разработчик без какого-либо опыта работы с серверами, этот проект, над которым я работаю, — мой первый опыт работы в мире серверов. По сути, мне нужно разместить API онлайн на сервере Linode с запущенным Nginx на Ubuntu. И у меня возникли проблемы с настройкой простого серверного блока для размещения страницы индекса 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
чтобы открыть порт.