Настройке web-сервера

advertisement
Министерство образования и науки Российской Федерации
Новосибирский государственный технический университет
Кафедра вычислительной техники
Отчет по лабораторным работам и контрольной работе
по дисциплине
Специальные главы информатики
«Разработка разработка сайта teplocentr54.ru»
Группа: ЗАМ - 734
Выполнил: Хлыстун М.А.
Проверил: Новицкая Ю.В.
Новосибирск 2012
Оглавление
Постановка задачи ..................................................................................................................... 3
Разработка и описание структурной схемы web-сайта .......................................................... 4
Структура базы данных ............................................................................................................... 5
Настройке web-сервера ................................................................................................................. 6
Файлы конфигурации nginx ...................................................................................................... 6
Настройка web-сервера apache2 ............................................................................................... 7
Приложение №1 ............................................................................................................................. 9
Литература ............................................................................................................................... 10
Постановка задачи
Разработка сайта для компании Теплоцентр, включая настройку web-сервера.
Сайт должен содержать следующие разделы:
 Главная страница — содержит текст рассказывающий о компании и ее развитии.
 Новости — отображает новости компании в обратном хронологическом порядке,
добавление новостей должно осуществляться через административный интерфейс
сайта. Новость может являться акцией (например, сообщение о распродаже), при
наличии активной акции, кнопка меню «Новости» должна менять свой внешний
вид.
 Документы — содержит ссылки на документы открытые для общего доступа
(прайсы, сертификаты продукции). Редактирование через административный
интерфейс. Прайсы должны отображаться в два столбца в верхней части страницы.
Сертификаты должны быть сгруппированы по производителю продукции.
 Вакансии — отображает текущие вакансии в компании. Редактируется через
административный интерфейс сайта.
 Информации — раздел содержит, полезную для потребителей информации.
Редактирование через административный интерфейс.
 Контакты — реквизиты компании, контактные данные, месторасположение на
карте 2gis.
Разработка и описание структурной схемы web-сайта
Для разработки данного web-сайта был выбран язык программирования python с
использование framework'a Django, который предоставляет подход по схеме МодельПредставление-Управление. Для хранения всех изменяемых данные используется
реляционная база данных MySQL. Схема таблиц базы данных представлена
в приложении №1. При разработки использована система контроля версий git.




Структура файлов web-сайта:
.git
static
templates
www
В каталоге .git храняться служебные файлы системы контроля версий.
Статические файлы находятся в каталоге static, который делится на каталоги:
css — для хранения каскадных таблиц стилей
doc — прайсы и сертификаты загружаемые представителем компании.
image — элементы дизайна, градиенты, логотип компании.
logo — логотипы компаний производителей, загружаются представителем компании при
добавлении новой продукции.
Weather — элементы дизайна для виджета с погодой.
Каталог www содержит основной код web-сайта и модели обращения к базе данных.
Template — содержит шаблоны html-страниц сайта.
Структура базы данных
Все данные хранятся в одной базе данных в нескольких таблицах.
Служебные таблицы для аутентификации в административном интерфейсе web-сайта.
auth_group
auth_group_permissions
auth_message
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
Таблицы необходимые для логирования действий пользователя
django_admin_log
django_content_type
django_session
Таблицы для хранения изменяемых данных компании.
article
doc
info
manufacturer
new
production
type
valute
vcn
weather
Таблицы valute и weather сделаны для кэширования данных и уменьшения количества
запросов к внешним API, а также в те моменты когда они не доступны.
Таблицы article, doc, info, new, vcn хранять данные изменяемые через админисративный
интерфейс сайта.
Manufacturer — содержит наименования производителей продукции. На эту таблицу
ссылаются таблицы production, article и doc.
Настройке web-сервера
В качестве web-сервера используется связка nginx+apache2. Nginx используется для
проксирования и передачи статических файлов (логотипов, картинок, элементов дизайна),
а apache2 для генерации динамических страниц.
Файлы конфигурации nginx
В связи с тем, что на сервере располагается несколько сайтов, конфигурация nginx
выполнена как отдельный виртуальный хост.
Конфигурация хранится в файле /etc/nginx/sites-available/teplocentr54ru
server {
listen
*:80;
server_name teplocentr54.ru www.teplocentr54.ru;
location /static {
root /var/www/teplocentr54.ru/web/teplocentr54ru/;
}
location / {
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header host $host;
proxy_set_header X-Real-IP
$remote_addr;
proxy_pass
http://127.0.0.1:8000;
access_log /var/log/nginx/django.access.log;
error_log /var/log/nginx/django.error.log;
}
location /media {
root /usr/share/pyshared/django/contrib/admin/;
}
location /nginx_status {
stub_status on;
access_log /var/log/nginx/status.log;
allow 217.65.5.112;
allow 217.65.5.116;
deny all;
}
}
В данном конфигурационном файле настроены локации расположения статических
файлов. Проксирование на web-сервер apache2 и запись в лог-файлы. Также
предусмотрена возможность получения внутренней статистики nginx, но только для
разрешенных ip-адресов. Это необходимо для системы мониторинга.
Настройка web-сервера apache2
Используется для генерации динамического содержимого web-страниц.
Файл конфигурации лежит в файле /etc/apache2/sites-enabled/teplocentr54.ru.vhost
<Directory /var/www/teplocentr54.ru>
AllowOverride None
Order Deny,Allow
Deny from all
</Directory>
<VirtualHost *:8000>
DocumentRoot /var/www/teplocentr54.ru/web/teplocentr54ru/
ServerName teplocentr54.ru
ServerAlias www.teplocentr54.ru
ServerAdmin webmaster@teplocentr54.ru
ErrorLog /var/log/ispconfig/httpd/teplocentr54.ru/error.log
ErrorDocument 400 /error/400.html
ErrorDocument 401 /error/401.html
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 405 /error/405.html
ErrorDocument 500 /error/500.html
ErrorDocument 502 /error/502.html
ErrorDocument 503 /error/503.html
WSGIScriptAlias / /var/www/teplocentr54.ru/web/teplocentr54ru/deploy/django.wsgi
<IfModule mod_ssl.c>
</IfModule>
<Directory /var/www/teplocentr54.ru/web>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
<Files ~ '.php[s3-6]{0,1}$'>
Order allow,deny
Deny from all
Allow from none
</Files>
</Directory>
<Directory /var/www/clients/client1/web1/web>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
<Files ~ '.php[s3-6]{0,1}$'>
Order allow,deny
Deny from all
Allow from none
</Files>
</Directory>
<IfModule mod_python.c>
<Directory /var/www/teplocentr54.ru/web>
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
</IfModule>
# suexec enabled
SuexecUserGroup web1 client1
# Clear PHP settings of this website
<FilesMatch "\.ph(p3?|tml)$">
SetHandler None
</FilesMatch>
# add support for apache mpm_itk
<IfModule mpm_itk_module>
AssignUserId web1 client1
</IfModule>
<IfModule mod_dav_fs.c>
# Do not execute PHP files in webdav directory
<Directory /var/www/clients/client1/web1/webdav>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler None
</FilesMatch>
</Directory>
# DO NOT REMOVE THE COMMENTS!
# IF YOU REMOVE THEM, WEBDAV WILL NOT WORK ANYMORE!
# WEBDAV BEGIN
# WEBDAV END
</IfModule>
</VirtualHost>
Приложение №1
Схема таблиц базы данных
Литература
1. Django: Разработка веб-приложений на Python, 2009, Джефф Форсье, Пол
Биссекс, Уэсли Чан, Символ-Плюс
ISBN-13: 978-5-93286-167-7
2. Django: Подробное руководство, 2010, Адриан Головатый, Джейкоб КапланМосс, Символ-Плюс
ISBN-13: 978-5-93286-187-5
3. HTML и CSS. Путь к совершенству Автор: Бен Хеник, Питер, Бестселлеры O'Reilly
ISBN 978-5-49807-864-9, 978-0-596-15760-9; 2011 г.
Download