Размещение веб-приложения Django в качестве приложения на существующем сайте
Я разместил веб-приложение django на IIS с помощью wfastcgi, и оно успешно работало при размещении в качестве нового веб-сайта с использованием приведенных ниже деталей конфигурации. Что мне нужно сделать по-другому в этих конфигурациях, если я хочу разместить это приложение в качестве приложения на существующем сайте IIS на производстве. Я попробовал скопировать саму конфигурацию и поместить ее в корень приложения IIS, но обнаружил ошибку 500 - внутренняя ошибка сервера. Пользователь IIS уже имеет права на чтение, выполнение и редактирование папки app.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="WSGIHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\pathtopython\Scripts\python.exe|C:\pathtowfastcgi\Scripts\wfastcgi.py" resourceType="Unspecified" />
</handlers>
<rewrite>
<rules>
<rule name="Django" stopProcessing="true">
<match url=".*" />
<action type="Rewrite" url="http://localhost:8000/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
При размещении веб-приложения Django в качестве приложения на существующем сайте IIS есть несколько соображений и изменений, которые необходимо внести в конфигурацию, чтобы она корректно работала в контексте существующего сайта. Вот основные шаги и изменения:
Путь приложения и конфигурация обработчика:
Убедитесь, что путь приложения правильно задан в обработчике и что он указывает на правильные скрипты Python и wfastcgi.py.
.Правила перезаписи, специфичные для приложения:
Измените правила перезаписи с учетом пути приложения и убедитесь, что URL-адреса правильно переписаны в контексте существующего веб-сайта.
Разрешения и область конфигурации:
Убедитесь, что приложение IIS имеет необходимые разрешения, а область конфигурации правильная.
Вот пример конфигурации, приспособленной для размещения в качестве приложения на существующем веб-сайте:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<!-- Adjust the path to your Python and wfastcgi.py scripts accordingly -->
<add name="WSGIHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\pathtopython\Scripts\python.exe|C:\pathtowfastcgi\Scripts\wfastcgi.py" resourceType="Unspecified" />
</handlers>
<rewrite>
<rules>
<!-- Ensure the URL rewrite rule points to the correct port and respects the application path -->
<rule name="Django" stopProcessing="true">
<match url=".*" />
<!-- Adjust the URL rewrite action to point to the application's local server address -->
<action type="Rewrite" url="http://localhost:8000/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>