FAQ

Ответы на часто задаваемые вопросы о Windows хостинге

Вопрос: Какая страница отображается по умолчанию?

Ответ: Если в запросе не определена конкретная страница, IIS производит поиск имен заданных страниц в следующем порядке:

  • Default.htm
  • Default.html
  • Default.shtm
  • Default.asp
  • Default.aspx
  • index.htm
  • index.html
  • index.shtm
  • index.asp
  • index.aspx
  • index.php

Таким образом, в качестве страницы по умолчанию IIS использует первую страницу, которая будет соответствовать критерию поиска.

Вопрос: Как я могу разместить свои страницы ошибок?

Ответ: В случае необходимости вы можете самостоятельно настроить обработку ошибок HTTP, редактируя файл web.config вручную.

Болеe подробную информацию о настройке обработки ошибок вы можете найти здесь.

Информацию о кодах ошибок HTTP для IIS 7.0 вы можете найти на сайте Microsoft.

Вопрос: Какими правами на каталоги и файлы на виртуальной площадке обладают анонимный пользователь web-сайта и рабочий процесс IIS?

Ответ: Рабочий процесс IIS работает под уникальным для каждой площадки пользователем и имеет права Modify на файлы и каталоги, размещенные на соответствующей площадке. Анонимный пользователь web-сайта уникален для каждого размещенного на виртуальной площадке домена, и имеет права Modify на файлы, размещенные в каталоге с названием домена. Для вновь создаваемых на площадке файлов права наследуются, поэтому никаких дополнительных действий с правами не требуется.

Стоит принять во внимание часть ограничений: на уровне сервера запрещено удалять каталог www, tmp и log, а так же запрещены изменения в каталоге log\w3svcXXXX. После того как домен удален с площадки через Личный кабинет — его файлы и каталоги остаются на площадке, но ограничения (на удаление и изменение) снимаются.

Вопрос: Можно ли использовать файлы .htaccess на Windows-хостинге?

Ответ: Файлы .htaccess используются веб-сервером Apache и не обрабатываются веб-сервером IIS в условиях Windows-хостинга.

Для настройки веб-сервера IIS, в соответствии с Вашими потребностями, вы можете использовать файл web.config.

Вопрос: Как включить блокировку нежелательных IP-адресов для веб-сайтов?

Ответ:Добавить в секцию configuration/system.webServer/securityipSecurity файл web.config параметр add ipAddress.

В следующем примере первое ограничение запрещает доступ к IP-адресу 192.168.100.1, а второе ограничение запрещает доступ ко всей сети 169.254.0.0.:

<location path="Default Web Site">
   <system.webServer>
      <security>
         <ipSecurity>
            <add ipAddress="192.168.100.1" />
            <add ipAddress="169.254.0.0" subnetMask="255.255.0.0" />
         </ipSecurity>
      </security>
   </system.webServer>
</location>
Вопрос: Каким образом я могу получить доступ к содержимому своих Web-сайтов?

Ответ: По протоколу FTP или по защищенному протоколу FTPS по адресу

ftp://uXXXXX.ftp.masterhost.ru/
где uXXXXX — это имя Вашей площадки.

Подробнее про подключение по протоколу FTP можно прочитать здесь, а про подключение по протоколу FTPS написано здесь.

Вопрос: Как размещать домены на своей площадке?

Ответ: Чтобы разместить домен на площадке, следует выбрать через раздел Услуги, в Личном кабинете нужную «виртуальную площадку», далее перейти по ссылке «разместить» (в списке сайтов) или выбрать пункт «разместить домен» в дополнительных параметрах площадки.

Максимальное количество доменов, размещаемых на одной площадке, зависит от выбранного тарифного плана.

При размещении домена через Личный кабинет в корне площадки автоматически создается папка с именем размещенного домена, в которой находятся две папки: log и www:

  • log — папка, в которой автоматически размещаются файлы журнала сервера IIS для данного домена.
  • www — «корень» сайта, в котором пользователь размещает его содержимое.
  • Подробнее можно прочитать здесь.
Вопрос: Как создать дополнительного пользователя FTP?

Ответ: Для того чтобы изменить пароль доступа на виртуальную площадку по протоколу FTP, необходимо зайти в Личный кабинет: Услуги > Виртуальная площадка > FTP > Сменить пароль. Либо Вы можете в разделе Заявки и распоряжения выбрать пункт «FTP» в разделе Изменение паролей доступа. В поле выбора указать интересующую Вас виртуальную площадку и логин, далее нажать на кнопку «сменить пароль».

Вопрос: Что делать, если при загрузке файлов некоторыми FTP-клиентами, например FAR Manager, буквы «я» пропадают из имен файлов?

Ответ: Для исправления данной проблемы с встроенным FTP-клиентом программы FAR Manager требуется включить следующие опции: «Дублировать FF в командах» (Dup FF in commands) и «Убирать двойные FF из PWD» (UnDup FF from PWD).

Для этого выберете Ваше подключение к FTP-серверу и активируйте меню «Редакт» (Edit) нажатием клавиши F4, далее перейдите к меню «Расширенные параметры» (Extended options), в котором активируйте две соответствующих опции.

Вопрос: В личном кабинете доступна только версия ASP.NET 2.0, как поступить, если приложению требуется версия 3.5?

Ответ: Это заблуждение. Речь идет о .NET Framework: Ваше приложение требует версию 3.5. У нас установлен .NET Framework 3.5 SP1, в состав которого входит как раз ASP.NET CLR версии 2.0, что и указано в личном кабинете. То есть, вы можете использовать свое приложение, проблем при его запуске быть не должно.

Получить более подробную информацию о соответствии между версиями ASP CLR и ASP.NET вы можете тут.

Вопрос: Как перезапустить пул приложений веб-сервера IIS 7.X, обслуживающий мою виртуальную площадку?

Ответ: Для перезапуска пула приложений войдите в файловый менеджер по адресу http://uXXXXXX.ftp.masterhost.ru (логин и пароль от FTP) и нажмите кнопку "Перезапустить пул". Более подробная информация о работе с файловым менеджером доступна по ссылке.

Вопрос: Разрешен ли у Вас SSI (Server Side Includes)?

Ответ: Да. На динамических тарифах даже с использованием директивы #exec. Обратите внимание, что по умолчанию обработчик настроен только на расширение .shtm, чтобы веб-сервер обрабатывал SSI в .html-файлах требуется добавить в секции system.webServer/handlers и system.webServer/staticContent файла web.config следующее:

<configuration>
    <system.webServer>
        <handlers>
            <add name="test" path="*.html" verb="GET,POST" modules="ServerSideIncludeModule" resourceType="File" requireAccess="Script" />
        </handlers>
        <staticContent>
            <remove fileExtension=".html" />
        </staticContent>
    </system.webServer>
</configuration>

Скачать пример готового web.config

При этом стоит знать, что веб-сервером IIS поддерживаются не все SSI-включения, со списком поддерживаемых можно ознакомится в библиотеке MSDN.

Вопрос: Как включить выполнение EXE как CGI?
Ответ: Для этого нужно, в конфигурационном файле web.config, в секции system.webServer/handlers прописать следующую строку для CGI-exe:
<configuration>
   <system.webServer>
       <handlers>
           <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" />
       </handlers>
   </system.webServer>
</configuration>

Скачать пример готового web.config

Вопрос: В моем приложении используется авторизация и шифрование данных из Cookies, почему периодически эти данные сбрасываются?

Ответ: Это результат обновления пула приложений. В рамках виртуального хостинга рабочие процессы IIS, выделенные для каждой виртуальной площадки, останавливаются при отсутствии активности в течении 15-и минут.

В данном случае мы рекомендуем использовать элемент machineKey для ASP.NET, более подробную информацию вы можете получить по ссылке в библиотеке MSDN.

Вопрос: Можно ли использовать SQL Server Management Studio для управления своими базами данных?

Ответ: Да. По стандартным портам (1433).

Подробнее можно прочитать здесь.

Вопрос: Как сопоставить расширения некоторых файлов с корректным MimeType? Почему файлы с некоторыми расширениями не видны?

Ответ: Для того чтобы файлы с некоторыми расширениями были видны веб-серверу у них должен быть обязательно указан MimeType. Сопоставить MimeType какому либо расширению вы можете самостоятельно, изменив файл web.config, добавив mimeMap в секцию system.webServer/staticContent:

<configuration>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".tyu" mimeType="application/octet-stream" />
    </staticContent>
   </system.webServer>
</configuration>

Скачать пример готового web.config

Следует отметить, что в зависимости от добавляемого типа файла необходимо указывать правильный mimeType для него, в противном случае содержание файла может неверно определяться и обрабатываться браузером. Список распространненых mimeType доступен по следующей ссылке.

Вопрос: Как мне создать ODBC DSN запись?
Ответ: Мы не поддерживаем создание пользователем ODBC DSN записей. Да и с появлением DSN-less connections надобность прописывать это каждый раз пропадает.
Вопрос: Что такое DSN-less connections?

Ответ: DSN-less Connection не требует создания системного DSN (Data Source Name).

Приведем пример:

<%
Dim Сon
Set Con = Server.CreateObject("ADODB.Connection")

con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data "
& _ "Source=database.mdb"

' Тут мы работаем с этим соединением
' ...................................

Сon.Close
Set Сon = Nothing
%>

Преимущества DSN-less Connection:

  • Вам не надо регистрировать DSN (особенно это важно в нашем случае, т.к. Вам не надо делать лишних запросов в службу поддержки);
  • оно несколько быстрее, т.к. используется «родной» OLE DB провайдер, и не используются лишние ODBC драйвера.
Вопрос: Примеры строк подключения (ConnectionString)

Ответ: Строку подключения можно добавить путем редактирования секции configuration\connectionStrings файла web.config, добавив в нее значения вида <add connectionString="Строка" />. Ниже рассмотрены самые популярные примеры строк подключения:

Где:

MSSQL:

"Server=uXXXXX.mssql.masterhost.ru;Database=uXXXXX;User ID=uXXXXX;Password=PASSWORD" name="SampleString"

MySQL через ODBC-драйвер:

"Driver={MySQL ODBC 5.1 Driver};Server=uXXXXX.mysql.masterhost.ru;Database=uXXXXX; uid=uXXXXX;password=PASSWORD;option=3"

Access через Jet с паролем и без:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Rooms\uXXXXX\domain.tld\www\base.mdb;User Id=admin;Password=;"

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Rooms\uXXXXX\domain.tld\www\base.mdb;Jet OLEDB:Database Password=PASSWORD;"

Access 2007 через ACE:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Rooms\uXXXXX\domain.tld\www\base.accdb;Persist Security Info=False;"

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Rooms\uXXXXX\domain.tld\www\base.accdb;Jet OLEDB:Database Password=PASSWORD;"

uXXXXX - номер Вашей виртуальной площадки
PASSWORD - соответствующий пароль доступа к базе данных
domain.tld - имя домена (веб-сайта), размещенного на площадки

Вопрос: Поддерживаете ли вы FrontPage Extensions?
Ответ: Нет. FrontPage Extensions является небезопасной технологией для shared hosting. Microsoft постепенно отказывается от этой технологии в пользу Windows SharePoint Services.
Вопрос: Поддерживаете ли вы ISAPI?
Ответ: ISAPI Filters — нет. ISAPI приложения — да (в формате как DLL так и EXE).
Вопрос: Каким образом перенаправить все запросы к моему сайту в другое место?

Ответ: Для создания переадресации с кодом ответа «302 Moved Temporarily» можно воспользоваться услугой «переадресация» в личном кабинете: Услуги - виртуальная площадка - домен domain.tld в списке сайтов – Переадресация - Настроить

Если нужно создать перенаправление с кодом ответа «301 Moved Permanently», то это можно сделать с помощью файла web.config:

<configuration>
  <system.webServer>
     <httpRedirect enabled="true" destination="http://target.tld/" httpResponseStatus="Permanent" />
   </system.webServer>
</configuration>

Скачать пример готового web.config

В примере вместо http://target.tld/ нужно указать адрес назначения (т.е. домен или страницу, на которые должна осуществляться переадресация).

Вопрос: Как запустить приложение, использующее ASP.NET MVC Framework в условиях виртуального Windows-хостинга?

Ответ: Для использования ASP.NET MVC требуется переключить режим работы Application Pool в режим Integrated, для чего, в личном кабинете, выберите в разделе «Услуги» виртуальную площадку и измените на ней характеристику «Параметры площадки». Вы можете выбрать необходимую версию ASP.NET и режим работы конвейера IIS — Classic или Integrated.

Внимание: При этом режим пула сменится для всех доменов, размещенных на виртуальной площадке, что может привести к некорректной работе остальных ресурсов. Режим же Classic выставлен по умолчанию для совместимости с унаследованным приложениями.

Вопрос: Как использовать возможности .NET-Users и .NET-Roles, как правильно настроить БД и веб-сайт для их использования?

Ответ: Для того, чтобы использовать некоторые возможности ASP.NET (в т.ч. и работа с пользователями и их ролями), мы предлагаем воспользоваться хранением всех данных в БД Microsoft SQL. Ниже описан алгоритм подготовки базы и приложения.

  1. Желательно, но не обязательно, создать новую БД из  панели управления для работы с .NET.
  2. Подготовить БД, воспользовавшись утилитой %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe

    Запустим утилиту aspnet_regsql.exe и выполним с БД действия, предлагаемые мастером. Фактически от Вас требуется только ввести реквизиты доступа к БД: адрес сервера, имя базы, владельца и пароль, остальное программа сделает самостоятельно.

    Теперь, когда база подготовлена, приступим к подготовке приложения, воспользовавшись IIS Manager.

  3. Добавим строку подключения к новой БД в разделе "Connection Strings", введем адрес сервера, имя базы и реквизиты ее владельца.
  4. Зайдем в Providers, зададим провайдера для ролей: выберем .NET Roles и нажмем Add. Выберем SqlRoleProvider, зададим имя провайдеру, и выберем созданную строку подключения к БД, не забудем дать имя приложению, например MyApp.
  5. Теперь в Providers выберем .NET Users и опять нажмем Add: Зададим имя провайдера для пользователей, укажем нашу строку подключения, введем имя приложения как и ранее (MyApp для примера).
  6. В итоге можно зайти в .NET Users, и скорее всего мы получим ошибку о соединении с БД, тогда выберем в Set Default Provider и выберем провайдера, которого мы завели для .NET Users ранее. Теперь произойдет соединение с БД и Вы сможете добавить нужных пользователей.

В результате операций из пунктов 3 - 6 получатся следующие секции web.config:
configuration\connectionStrings\ - строка подключения
configuration\system.web\roleManager\providers - провайдер ролей
configuration\system.web\membership\providers - провайдер пользователей


<configuration>
    <connectionStrings>
        <add connectionString="Server=uXXXXX.mssql.masterhost.ru;Database=uXXXXX;User ID=uXXXXX;Password=dbpassword" name="ASPNET string" />
    </connectionStrings>
    <system.web>
        <roleManager>
            <providers>
                <add name="Имя провайдера ролей" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0,
                Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="Имя приложения" connectionStringName="ASPNET
                string" />
            </providers>
        </roleManager>
        <membership defaultProvider="Имя провайдера пользователей">
            <providers>
                <add name="Имя провайдера пользователей" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0,
                 Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="Имя приложения" connectionStringName="ASPNET
                 string" enablePasswordReset="false" enablePasswordRetrieval="false" passwordFormat="Clear"
                  requiresQuestionAndAnswer="false" requiresUniqueEmail="false" />
            </providers>
        </membership>
    </system.web>
</configuration>

            

Скачать пример готового web.config

Примечание: Если IIS сообщает об ошибке "The specified password is invalid. Type a new password" при добавлении нового .NET-пользователя, то существуют два возможных пути решения проблемы.

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

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

<add name="Имя провайдера ролей" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="Имя приложения" connectionStringName="ASPNET string" />
Добавьте ключи:
minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" passwordStrengthRegularExpression=""
В итоге элемент примет вид:
<add name="Имя провайдера ролей" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="Имя приложения" connectionStringName="ASPNET string" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" passwordStrengthRegularExpression="" />
Вопрос: Как защитить паролем приложение ASP .NET?

Ответ: С помощью форм аутентификации. Об этом рассказывается в следующих статьях на сайте Microsoft:

Вопрос: Как защитить паролем произвольный каталог?

Ответ: Для защиты любого каталога в рамках Windows-хостинга можно использовать метод аутентификации "Basic Authentication" и авторизацию пользователей через реквизиты FTP-доступа к виртуальной площадке.

Воспользоваться такой возможностью можно через IIS Manager. После подключения к нужному веб-сайту выберите в левом меню Connections нужный каталог веб-сайта и перейдите в раздел Authentication, по правому клику на "Basic Authentication" активируйте Enable. Далее вернитесь назад и перейдите в раздел Authorization Rules, удалите уже присутствующее там правило типа "Allow All Users ..." (Remove по правому клику). После чего в правом меню Actions нажмите "Add Allow Rule" и отметьте "Specified users", в поле ввода введите логин FTP-доступа к виртуальной площадке (можно завести дополнительные FTP-доступы для использования авторизации). После добавления правила Вы сможете зайти по HTTP в нужный каталог веб-сайта, введя реквизиты указанного FTP-доступа.

После того, как будут проведены выше обозначенные действия через интерфейс IIS Manager, результатом будет являться следующий файл web.config:


<?xml version="1.0" encoding="UTF-8"?><configuration>
    <system.webServer>
        <security>
            <authentication>
                <basicAuthentication enabled="true" />
            </authentication>
            <authorization>
                <remove users="*" roles="" verbs="" />
                <add accessType="Allow" users="uXXXXX" />
            </authorization>
        </security>
    </system.webServer>
</configuration>

Скачать пример готового web.config.

Данный web.config можно поместить в каталог, который требуется защитить паролем, предварительно указав в 10'й строке логин FTP-доступа к виртуальной площадке, тем самым избавив себя от необходимости устанавливать IIS Manager, и использовать готовое решение.

Вопрос: Как правильно указать каталог для приложения при заказе услуги «Приложение» из личного кабинета?
Ответ: При заказе услуги «Приложение» путь до каталога приложения указывается от корня web-сайта. Таким образом, если приложение должно находится в каталоге /mydomain.com/www/test, то при заказе услуги «Приложение» в личном кабинете следует указать каталог «test» (без кавычек).
Вопрос: Как узнать полный физический путь до моего файла или каталога?

Ответ: Получить полный физический путь до нужного каталога можно с помощью метода Map Path и переменной сервера PATH_INFO.

Например, с помощью простого asp-скрипта:

<%= Server.MapPath(Request.ServerVariables("PATH_INFO"))%>
можно определить физический путь к этому скрипту.

В случае с PHP узнать абсолютный путь до скрипта можно так:

<?php echo $_SERVER['PATH_TRANSLATED']; ?>
Вопрос: Что делать, если не работает роутинг через элемент routes.MapPageRoute?

Ответ: Если при правильно добавленных маршрутах через routes.MapPageRoute сервер возвращает ответ с кодом 404, то в web.config требуется добавить элемент

<modules runAllManagedModulesForAllRequests="true"/>

в секцию

<system.webServer>
Подробнее можно узнать по ссылке в Журнале MSDN.

Вопрос: Как правильно подключить услугу IP/SSL?

Ответ: Для заказа услуги выделенный IP/SSL необходимо в разделе Услуги Личного кабинета выбрать виртуальную площадку, где размещен домен, далее выбрать его в списке сайтов. В характеристиках домена, в разделе «SSL-сертификат и выделенный IP» установите сертификат одним из способов нажав «Настроить» в пункте «Поддержка SSL».

Важно знать, что услуга выделенного IP подразумевает под собой выделенный адрес для каждого конкретного веб-сайта, по которому будут возможны входящие соединения. Иными словами, все входящие запросы к конкретному веб-сайту будут идти через выделенный IP, но исходящие соединения (например, инициированные приложениями) будут направлены с основного внешнего IP-адреса сервера виртуального хостинга.

Вопрос: Как добавить поддержку SSL-шифрования и сертификат к протоколу HTTP (HTTPS)?

Для генерации сертификата в центрах выдачи (Thawte, VerySign, Go Daddy и др.), требуется заполнить специальную анкету, в которой нужно указать следующие данные:

  • Country Name (2-х буквенный код страны)
  • State or Province Name (для России можно указать город)
  • Locality Name (город)
  • Organization Name (название компании)
  • Organizational Unit Name (направление деятельности компании)
  • Common Name (имя домена)
  • Email Address (адрес электронной почты)

При предъявлении вами такой анкеты мы можем сгенерировать и выдать специальный CSR-запрос (Certificate Signing Request) для последующей передачи вами в центр выдачи сертификатов. После получения сертификата, его можно будет установить на сервер виртуального хостинга для нужного домена.

Также Вы можете установить собственный сертификат, сгенерированный самостоятельно, для чего до подключения услуги требуется скопировать в корень виртуальной площадки 2 файла:

где Domain.tld — имя Вашего домена, к которому будет подключена услуга IP/SSL.

В случае, если до заказа услуги «Выделенный IP/SSL» не будут загружены файлы Domain.tld.pfx и Domain.tld.pwd, будет установлен наш самоподписанный сертификат.

Вопрос: Как настроить переадресацию на HTTPS?

Если необходимо запретить HTTP, оставив посетителям доступ только по защищенному протоколу HTTPS, то добавьте в файл web.config следующее правило.

Если сертификат установлен по технологии SNI:

<rewrite>
    <rules>
        <clear />
        <rule name="Force HTTPS" enabled="true" stopProcessing="false">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTP_X_MH_FORWARDED_PROTO}" pattern="^http$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" />
        </rule>
    </rules>
</rewrite>

Для переадресации сайта с www:

<rewrite>
    <rules>
        <clear />
        <rule name="Force non-WWW" enabled="true" stopProcessing="false">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
            </conditions>
            <action type="Redirect" url="https://{C:2}/{R:1}" appendQueryString="true" />
        </rule>
    </rules>
</rewrite>

Для переадресации сайта на HTTPS при подключенной услуге «Выделенный IP» можно использовать такое правило:

<rewrite>
    <rules>
        <clear />
        <rule name="Redirect from HTTP to HTTPS" stopProcessing="true">
            <match url="^(.*)$" />
            <conditions>
                <add input="{HTTPS}" pattern="^OFF$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
        </rule>
    </rules>
</rewrite>
Вопрос: Как создавать исходящие соединения с выделенного IP?

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

Ниже рассмотрены примеры кода, для создания сокета с нужного адреса используется socket_bind:

<?php
    $sock socket_create(AF_INETSOCK_STREAMSOL_TCP);
    $sourceip 'XXX.XXX.XXX.XXX';
    socket_bind($sock$sourceip);
    socket_connect($sock'remotedomain.tld'80);
    $request 'GET / HTTP/1.0' ."\r\n" .'Host: remotedomain.tld ' "\r\n\r\n";
    socket_write($sock$request);
    while(!socket_last_error($sock)){
        if($buffer=socket_read($sock,512,PHP_NORMAL_READ)){
            echo $buffer;
            } }
    socket_close($sock);
?>

В данном примере:

  • XXX.XXX.XXX.XXX - выделенный IP
  • remotedomain.tld - удаленный сервер, к которому посылается GET-запрос

Более подробная документация доступна в PHP Manual.

Если используется CURL, то можно использовать curl_setopt.