Nginx с частным доменным именем возвращает 503 Service Unavailable

Я новичок в nginx и новичок в manuall server setup ...

У меня простой сервер nginx, при доступе с ip:port все нормально, я пытаюсь установить доменное имя для моего хоста.

server {
        listen       80;
        listen [::]:80;
        server_name  farhadadeli2.ir www.farhadadeli2.ir;

        root   /xxx;
        index index.php index.html index.htm;

        location / {            
            try_files $uri $uri/ =404;
        }             

        location ~ \.php$ {
            root           html;
            fastcgi_pass   unix:/var/run/php-fpm/www56.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }


    }

farhadadeli2.ir не является зарегистрированным доменом, поэтому я установил 185.208.172.243 farhadadeli2.ir в файле хоста windows моей локальной системы.

Если я открываю http://farhadadeli2.ir/index.html в браузере, я получаю 503 Service Unavailable .... Странно, но если я захожу на этот домен через прокси-сервер, он работает нормально и загружает индексную страницу!!!

Я перезапустил службу dns на моем сервере centos7 и очистил dns в моей локальной системе windows (ipconfig /flushdns), но я все еще получаю сообщение 503 Service Unavailable !!!

Что я могу сделать, чтобы исправить это????

Нужно ли мне установить какой-то dns сервер на моем сервере centos?

0
задан 1 February 2020 в 11:26
1 ответ

Я знаю, что этот вопрос немного устарел, но несколько замечаний по настройке Centos 7 для HTTP.

Межсетевой экран

Centos 7 использует « firewalld », а не iptables. Брандмауэр можно настроить с помощью firewall-cmd, который должен запускаться от имени пользователя с повышенными привилегиями (sudo).

По умолчанию все службы, за исключением ssh, заблокированы, поэтому http должен быть явно разрешен. Распространенная ошибка при добавлении службы - не устанавливать изменения как постоянные.

Постоянно открывать http с помощью следующей команды:

sudo firewall-cmd --add-service=http --add-service=https --zone=public --permanent

или

sudo firewall-cmd --add-port=80/tcp --add-port=443/tcp --zone=public --permanent

После выполнения вышеуказанного оба протокола http и https будут открыты для Общедоступной зоны и сохранены как постоянные.

В экспериментальных целях вы можете добавлять и удалять порты и службы без опции --permanent, а если что-то пойдет не так, вы можете восстановить с помощью firewall-cmd --reload.

Apache / Nginx

Установите Apache или Nginx, выбор за вами. Вы можете использовать любой http-сервер, который вам нравится.

sudo yum install apache

или

sudo yum install nginx

По моему опыту, Apache и Nginx сразу же готовы обслуживать страницы и могут быть загружены для тестирования. Настройте выбранный вами сервер для запуска после каждой перезагрузки.

# For apache    
sudo systemctl enable httpd.service
sudo systemctl start httpd.service

# For Nginx
sudo systemctl enable nginx.service
sudo systemctl start nginx.service

Убедитесь, что он работает локально.

У вас должна быть возможность загрузить пустой веб-сайт, установив инструмент ссылок.

sudo yum -y install links
links http://localhost

Ваш веб-сайт должен быть видимым и обслуживаться с localhost , и теперь вы должны сделать то же самое, например, для своего IP-адреса, отличного от localhost; 'ссылки http://192.168.0.10 ' и проверьте тот же результат.

Доменное имя

Если вы создаете среду разработки для себя, и сервер находится в той же сети, что и вы, то вам не нужно доменное имя.Вы должны иметь возможность загрузить свой сервер через браузер, используя URL-адрес http://192.168.0.10 (очевидно, замените его на IP-адрес сервера). Если у вас есть только один веб-сайт на сервере, вы также можете получить к нему доступ из Интернета после перенаправления порта 80 на вашем маршрутизаторе. URL внешнего доступа будет иметь вид http: // ваш_публичный_ip_адрес (google 'whats my ip').

Однако, если у вас будет несколько веб-сайтов, вы должны получить доменное имя, иначе сервер не сможет их различить. Существует множество поставщиков бесплатных доменных имен, таких как noip.com и dyn.com. Вы можете указать различные доменные имена на своем общедоступном IP-адресе и успешно запустить среду разработки.

Выше приведены основы настройки домашнего веб-сервера. Следует помнить следующее:

  1. Порт брандмауэра должен быть открыт,
  2. Http-сервер установлен и протестирован
  3. Нет вашего общедоступного IP-адреса
  4. Переадресованы соответствующие порты

После того, как вы все это сделали и протестировали веб-сайт работает, вам следует перезагрузить и повторно протестировать и убедиться, что все службы запускаются должным образом.

Вы закончили

Надеюсь, это кому-то поможет.

0
ответ дан 20 April 2020 в 23:53

Теги

Похожие вопросы