Suspendedpage cgi что это
Про Debian
Сегодня мы поговорим ещё о трех относительно бесполезных модулях apache2, которые упорно кушают нашу память.
mod_cgi, mod_status, mod_deflate.
С mod_cgi всё понятно — он нужен для того, чтобы апач мог дергать и запускать cgi скрипты, будь они на баше, на перле, на питоне, на брейнфаке или другой неведомой хрени, которая умеет отдать что-то в common gateway interface с правильными хедерами.
С учетом того, что CGI умирает в принципе, а fast_cgi и его разновидности прекрасно цепляются в nginx — модуль совершенно бесполезен. Ну при условии, что вы действительно не используете CGI скрипты.
mod_status — согласитесь, вы им никогда не пользовались. Можете почитать что он делает. Он умеет отдавать какую-то там информацию об работающем апаче, бла-бла-бла… Вот честно — ни разу им не пользовался за 5 лет.
mod_deflate — позволяет сжимать данные апачем перед передачей клиенту. А клиент у нас кто? Правильно, nginx. Сжимать данные для передачи на локальную петлю, которая умеет прокачивать через себя на хорошем сервере пару десятков гигабит в секунду? Кхм. А вся забавность ситуации в том, что запрос mod_deflate в гугле посылает нас к кому? Правильно, к Игорю Сысоеву. Естественно, что весь необходимый функционал deflate был перенесен в nginx.
Сжимать данные в nginx можно, например, модулем gzip.
Отключим их:
root@debian-host:
# a2dismod status
root@debian-host:
# a2dismod cgi
root@debian-host:
# a2dismod deflate
root@debian-host:
Только что мы отвоевали примерно 500 кб RSS с каждого форка апача (и
WHM / cPanel – Собственные страницы ошибок, index и suspended
Если вы приобрели ВДС (VDS) или выделенный сервер (Dedicated Server) и установили на него панель управления WHM / cPanel, то естественно что вам захочется сделать что бы при появлении ошибок с любого сайта, открывалась не невзрачная страница по умолчанию, а именно ваша.
Как сделать свою страницу index на сервере?
Страница index, т.е. главная страница на сервере будет отображаться при запросе на главный домен сервера или при запросе на IP сервера. Можно конечно её не делать, но сделав её под шаблон вашего сайта и повесив какую либо информацию или рекламу он нее будет все же польза.
По умолчанию страница index в WHM / cPanel показывается по адресу http://111.222.333.444/cgi-sys/defaultwebpage.cgi
111.222.333.444 – основной IP адрес сервера или домен.
Файл в который записана информация, которая отображается по этому адресу находится по SSH тут:
Но редактировать этот файл можно и через саму WHM / cPanel панель:
Main >> Account Functions >> Web Template Editor >> Default Website Page
При редактировании этого шаблона рекомендуется картинки он него сохранять по адресу /usr/local/cpanel/img-sys/, по этому что бы не заглючиваться на загрузках картинок и т.п. сделайте просто переадресацию на главную страницу основного сайта. Код такой:
Как и в выше описанном случае с defaultwebpage.cgi, страница http://79.98.25.99/cgi-sys/suspendedpage.cgi расположена по адресу /var/cpanel/webtemplates/root/english/suspended.tmpl и доступна доже через панель WHM по адресу
Main >> Account Functions >> Web Template Editor >> Account Suspended
И как в предыдущем случае рекомендуем установить там переадресацию на нужную вам страницу:
Как сделать свою страницу index для создаваемых через WHM сайтов?
Заготавливаем заготовку – страницу index.shtml и загружаем в к примеру через FTP в главную учетную запись по адресу:
cpanel3-skel/public_html (если там нет public_html, то создаем).
После этого все создаваемые учетные записи из этой главной будут создаваться с созданной вами заранее главной страницей к примеру на которой будет написано “хостинг ваш, сайт клиента в разработке”
Если при создании шаблона вы применяете картинки и другие связанные файлы, загружайте в туже папку, все они будут перенесены при создании учетных записей.
Как сделать свои страницы ошибок?
cgi-sys/suspendedpage.cgi: What Does It Mean?
DISCLOSURE: This post may contain affiliate links, meaning when you click the links and make a purchase, we receive a commission.
CGI stands for Computer Generated Imagery and it is usually used for movies and animated stuff for the games. Yet, when you are dealing with the PHP hosting or some other platform for hosting the website on the internet, it is the term that deals with page dynamics and how the page looks for the visitors when they are clicking on your website link.
Dealing with all that hosting is not easy, and if you are getting some sort of error like “CGI-SYS/Suspendpage.cgi” it gets harder to find your way around it at times. A few things that you will need to know about the error message, what it means and how to remove it are:
cgi-sys/suspendedpage.cgi: What Does It Mean?
“CGI-Sys/suspendpage.cgi” means that your account is suspended. That can be quite troublesome, and there might be a number of reasons for this to happen.
Yet, you can never be sure about the actual reason, but you will need to fix it for sure. If your account is suspended, that would mean your hosting is not working and the webpage is down as well.
That is certainly not something that you would like to have and here are a few ways that you can fix this problem up without having to get much worried about it.
If your own server
If you are hosting the domain and website on your own server, it will be pretty easier to fix up the problem for you. All you need to do is make sure that you are logging in Web Host Manager and checking for the details there.
WHM is the Web Host Manager that allows you to control the hosting server and all the resources on it as well. Once you login the server you will be able to see all the cPanel based sites there that you are hosting on the server.
You will need to check for the site that is showing an error message for you and enable the hosting account again for it there. Once you do that, you just need to save the settings and the error message will be gone with your website showing up on the internet without any problems at all.
If some paid hosting
If you are using some paid hosting server from a commercial service provider, that can get a bit troublesome for you to check and make sure that the error message is fixed up properly.
Luckily, most of the commercial hosting servers are providing round the clock so you can take care of all such problems in an optimal manner. So, first of all, you need to make sure that you are choosing the hosting service provider with good support services to fix such issues in a timely manner.
However, cutting to the chase, you will need to contact the hosting service provider support department stating the issue and they will be able to look into the matter for you.
The support department will not only be checking on the reason for this error message and your account suspension but will also be able to fix it for you.
Пример простейшего cgi сервера
Думаю многие знают, как работает CGI взаимодействие между клиентом и сервером: клиент получает от сервера и отдает серверу данные через стандартные stdin и stdout. Многие наверное даже сами писали CGI клиентов, ведь по сути — любой скрипт для веб-сервера это и есть CGI-клиент.
А многие ли задавались вопросом, как именно происходит эта «магия»? Каким образом стандартные функции для ввода/вывода вместо экрана взаимодействуют с сервером?
CGI-клиент
Начну я все-таки с самого простого и общеизвестного: опишу своего клиента для CGI сервера. Простой «hello world» меня не устроил, потому что нужно было проверить не только возможность передачи сообщений через stdout, но и корректность приема переменных окружения и сообщений из stdin.
Кроме этого чтобы убедиться, что получилось самое настоящее CGI взаимодействие, было решено написать не один, а сразу два клиента. На с++ и на python.
Пояснения к коду клиентов
Если из CGI-сервера запустить клиента на С++, то на экран выведется информация о переменных командной строки, три переменные окружения с именами «Content-Length», «VARIABLE2» и «VARIABLE3», а также все содержимое которое получено от сервера в stdin.
Если из CGI-сервера запустить клиента на Python, то на экран выведется информация о переменных окружения с именами «Content-Length», «VARIABLE2» и «VARIABLE3», а также все содержимое которое получено от сервера в stdin.
Надо отметить, что переменная окружения «Content-Length» должна быть сформирована сервером таким образом, чтобы быть числом меньше либо равным количеству байт в stdin. Это необходимо потому, что клиент никаким другим образом не может узнать данную информацию кроме как от сервера.
CGI-сервер
В отличии от клиентских скриптов, код CGI сервера в сети найти совсем не просто, поэтому мой код собран из различных обрывистых и часто содержащих ошибки примеров. Кое-что добавил от себя, чтобы было более наглядно.
Пояснения к коду сервера
При такой инициализации сервер будет взаимодействовать с процессом «./Main_Child.exe». Так я назвал скомпилированного клиента на С++.
Если в качестве переменных командной строки задать массив <«python», "./test.py", 0>, то сервер будет взаимодействовать со скриптом на питоне.
После глобальных переменных я написал кроссплатформенный вариант функции _spawnve. Если коротко — то эта функция создает процесс, память которого полностью идентична текущему процессу и передает новому процессу другие переменные командной строки и окружения.
Заканчивается сервер функцией «main», большую часть которой (как можно догадаться по английским комментариям) я взял из разных сторонних источников. Из кода этой функции видно, что «вся соль» перенаправления ввода/вывода между процессами организована с помощью «pipe» (каналов).
Механизм каналов довольно простой и стандартный, он почти одинаково реализован как в Windows так и в Linux. Чтобы связать эти два подхода, в самом начале исходника я добавил простое переопределение:
В конце функции «main» организован бесконечный цикл, в котором сервер принимает от клиента ответ и передает этот ответ на экран. Выход из цикла произойдет когда клиентский процесс завершится.
Заключение
Несмотря на свой солидный возраст, CGI — интерфейс остается одним из самых распространенных интерфейсов межпроцессного взаимодействия. Подавляющее большинство веб-серверов и веб-сайтов взаимодействуют именно с помощью этого интерфейса. Надеюсь данная статья будет полезна тем, кто захочет понять, а может и реализовать в собственных проектах не только клиентскую, но и серверную часть CGI.
Все исходники можно найти: тут.
В папках «cgi_main» и «child» находятся проекты для Visual Studio.
Чтобы запустить пример под Линукс, достаточно скопировать содержимое папки «src» и запустить скрипт «compile.py». Должно получиться что-то вроде этого:
Suspendedpage cgi что это
CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешней программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитают названия «скрипт» (сценарий) или «CGI-программа».
Упрощенная модель, иллюстрирующая работу CGI:
Сам интерфейс разработан таким образом, чтобы можно было использовать любой язык программирования, который может работать со стандартными устройствами ввода-вывода. Такими возможностями обладают даже скрипты для встроенных командных интерпретаторов операционных систем, поэтому в простых случаях могут использоваться даже командные скрипты.
Как работает CGI?¶
Обобщенный алгоритм работы через CGI можно представить в следующем виде:
Области применения CGI¶
Наиболее частая задача, для решения которой применяется CGI — создание интерактивных страниц, содержание которых зависит от действий пользователя. Типичными примерами таких веб-страниц является форма регистрации на сайте или форма для отправки комментария. Другая область применения CGI, остающаяся за кулисами взаимодействия с пользователем, связана со сбором и обработкой информации о клиенте: установка и чтение «печенюшек»-cookies; получение данных о браузере и операционной системе; подсчет количества посещений веб-страницы; мониторинг веб-трафика и т.п.
Это обеспечивается возможностью подключения CGI-скрипта к базе данных, а также возможностью обращаться к файловой системе сервера. Таким образом CGI-скрипт может сохранять информацию в таблицах БД или файлах и получать ее оттуда по запросу, чего нельзя сделать средствами HTML.
CGI — это не язык программирования! Это простой протокол, позволяющий веб-серверу передавать данные через stdin и читать их из stdout. Поэтому в качестве CGI-обработчика может использоваться любая серверная программа, способная работать со стандартными потоками ввода-вывода.