Показаны сообщения с ярлыком WWW (Вэб). Показать все сообщения
Показаны сообщения с ярлыком WWW (Вэб). Показать все сообщения

среда, сентября 26

Безопасность Firefox для локальных JS-скриптов

Периодически приходится открывать локально демо-страницы с JS-фреймворками типа Ext.JS или Dojo. При этом, кажется, что код на странице почему-то не хочет работать:


Но всё дело в параметре security.fileuri.strict_origin_policy, который запрещает подгрузку сторонних файлов на HTML-странице.
выставим значение параметра в false на странице настроек и обновим закладку с открытым локально HTML-файлом:


пятница, декабря 10

Tomcat и виртуальный хостинг. часть 2: добавление виртуального хоста

Ранее мы настроили связку Nginx+Tomcat для хостинга. Давайте теперь добавим виртуальный домен example.org

Шаг 1: настраиваем nginx

создаём файл /srv/nginx/vhost_01_example.org.conf:
server { listen 80; server_name example.org *.example.org location / { proxy_pass http://127.0.0.1:8080; include /srv/nginx/proxy.conf; } }

Теперь вы можете выполнить команду "service nginx reload" и, открыв в браузере адрес http://example.org, увидеть домашнюю Tomcat-страницу

Шаг2: настраиваем Tomcat

# cd /srv/tomcat
# mkdir webapps/example.org
# sed -e 's/localhost/example\.org/g' conf/server.d/vhost-localhost.xml > conf/server.d/vhost-example.org.xml

правим server.xml, добавляя новые строки:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE server-xml [ <!ENTITY vhost-localhost SYSTEM "server.d/vhost-localhost.xml"> <!ENTITY vhost-example.org SYSTEM "server.d/vhost-example.org.xml"> ]> ... &vhost-localhost; &vhost-example.org; </Engine> ...

Теперь нужно настроить пользователя для менеджера виртуального хоста.

Добавим нового пользователя manager-example.org с новой одноимённой ролью в /srv/tomcat/conf/tomcat-users.xml:
<role rolename="manager-example.org" />
<user username="manager-example.org" password="12345678" roles="manager-example.org" /&rt;
и внесём изменения в конфигурационный файл Manager-приложения:
# cp -R webapps/localhost/manager webapps/example.org/
# cd webapps/example.org/manager/WEB-INF
# sed -i.bak 's/<role-name>manager<\/role-name>/<role-name>manager-example.org<\/role-name>/g' web.xml

Перезапускаем томкат:
# chown -R tomcat:tomcat /srv/tomcat
# service tomcat6 stop
# tail -f /srv/tomcat/logs/catalina.out ;Ждём остановки Tomcat и жмём Ctrl+C
# service tomcat6 start

Открываем в браузере адрес http://example.org/manager/html и на запрос авторизации вводим логин/пароль для пользователя manager-example.org.

На этом базовая настройка виртуального хоста example.org завершена.


Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

Tomcat и виртуальный хостинг. часть 1: связка Nginx + Tomcat

Рано или поздно приходишь к тому, что на сервере Tomcat хочется держать не только один сайт. можно конечно же разные сайты делить за тем же Nginx по запросам к подкаталогу "/domain-name", но правильнее будет сделать разнесение по виртуальным хостам. ещё правильнее - разнести "клиентов" ещё и по разным инстансам tomcat (чтобы они "соседей" не "завалили"), но это покажу как-нибудь в другой серии постов.
Итак, наша задача - настройка Tomcat на работу с виртуальными хостами

С чего мы начнём? с базового задела Tomcat под поставленную задачу - со связки Nginx+Tomcat (помимо плюсов самого Nginx, нам не придётся думать об уровне доступа Tomcat для прослушки 80-го порта)

Настройка производится на сервере CentOS 5.5 (но думаю, что и на других версиях не будет отличий ;) ). Так же на сервере должен быть открыт 80-й порт

Устанавливаем nginx "по умолчанию":
# yum install nginx

создаём каталог /srv/nginx и меняем ему владельца и группу на nginx (в этом каталоге мы будем хранить настройки виртуальных хостов для nginx):
# mkdir -p /srv/nginx
# chown nginx:nginx /srv/nginx


правим файл /etc/nginx/conf.d/virtual.conf
# mv /etc/nginx/conf.d/virtual.conf /etc/nginx/conf.d/virtual.conf.orign
# echo "include /srv/nginx/vhost_*.conf;" > /etc/nginx/conf.d/virtual.conf

создаём файл /srv/nginx/proxy.conf со следующим содержимым:
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

это общие настройки для всех виртуальных хостов. В последующем можно будет дописать или поправить его содержимое.

создаём хост "по-умолчанию", для этого создаём файл /srv/nginx/vhost_00_default.conf:
server { listen 80 default; location / { proxy_pass http://127.0.0.1:8080; include /srv/nginx/proxy.conf; } }

Теперь переходим к базовой установке и настройке Tomcat
Скачиваем и распаковываем дистрибутив Apache Tomcat (повествую на примере версии 6.x)
# cd /srv
# wget http://www.sai.msu.su/apache/tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.tar.gz
# tar xvf apache-tomcat-6.0.29.tar.gz
# mv apache-tomcat-6.0.29 tomcat
# useradd -d /srv/tomcat -s "/sbin/nologin" tomcat

для запуска демона Tomcat от пользователя tomcat можно скомпилировать jsvc, но мне больше нравится нижеприведённый скрипт /etc/init.d/tomcat6:
#!/bin/sh # # /etc/init.d/tomcat6 # # This is the init script for starting up the # Jakarta Tomcat Server # # chkconfig: 234 20 80 # description: Starts and stops the Tomcat daemon # processname: tomcat # # source functions library for 'daemon' function . /etc/init.d/functions TOMCAT_HOME=/srv/tomcat TOMCAT_START=$TOMCAT_HOME/bin/startup.sh TOMCAT_STOP=$TOMCAT_HOME/bin/shutdown.sh TOMCAT_USER=tomcat start() { echo -n $"Starting Tomcat service: " daemon --user $TOMCAT_USER $TOMCAT_START RETURN_CODE=$? echo $? } stop() { echo -n $"Stopping Tomcat service: " daemon --user $TOMCAT_USER $TOMCAT_STOP RETURN_CODE=$? echo $? } status() { ps aux | grep tomcat | grep -v grep } # Handle the different input options case "$1" in start) start ;; stop) stop ;; status) status ;; *) echo $"Usage: $0 {start|stop|status}" exit 1 esac exit 0

Теперь переходим к небольшому "тюнингу" Tomcat, для дальнейшего удобства его администрирования

Для начала, поправим файл /srv/tomcat/conf/server.xml (далее просто server.xml) для работы с Nginx. Для этого найдём
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" />
и заменим её на
<Connector address="127.0.0.1" port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" />
тем самым мы укажем Tomcat, чтобы он слушал порт 8080 только локально

Перейдём к настройке хостов.

удобнее всего править настройки хостов не выискивая их в "портянке" файла server.xml, а вынеся настройки каждого хоста в отдельный файл. Для этого произведём некоторые изменения в файле server.xml

изменяем "шапку" файла, дописав блок DOCTYPE:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE server-xml [ <!ENTITY vhost-localhost SYSTEM "server.d/vhost-localhost.xml"> ]>

создадим подкаталог server.d, в котором будут лежать конфигурационные файлы наших виртуальных хостов:
# cd /srv/tomcat/conf
# mkdir server.d

Вынесем в отдельный файл настройки для localhost... Для этого найдём в server.xml блок "<Host>...</Host>" и сохраним его в server.d/vhost-localhost.xml:
# cd /srv/tomcat/conf
# echo "<?xml version='1.0' encoding='utf-8'?>" > server.d/vhost-localhost.xml
# sed -n -e '/[[:space:]]*<Host.*/,/[[:space:]]<\/Host>/p' server.xml >> server.d/vhost-localhost.xml
# sed -i.bak -n '1h;1!H;${x;s/<Host.*<\/Host>/\&vhost-localhost;/;p}' server.xml

Для работы Tomcat требуется установленная на сервере Java-машина. Путь до неё прописывается в файле /srv/tomcat/bin/setenv.sh:
# echo "JAVA_HOME=/usr/java/default" > /srv/tomcat/bin/setenv.sh

Следующий наш шаг - настройка каталога webapps для будущих виртуальных каталогов
# cd /srv/tomcat
# sed -i 's/webapps/webapps\/localhost/' conf/server.d/vhost-localhost.xml
# mv webapps localhost
# mkdir webapps
# mv localhost webapps/

и заваршающее действие:
# chown -R tomcat:tomcat /srv/tomcat

Готово. теперь можно запускать созданный web-сервер:
# service tomcat6 start
# service nginx start

Зайдите в браузере по адресу http://ваш_сервер - вы должны увидеть Tomcat-страницу по-умолчанию.

Если всё правильно настроено и вы увидели страницу Tomcat, то можно установить автозапуск для демонов:
# chkconfig nginx on
# chkconfig --add tomcat6
# chkconfig tomcat6 on

ЗЫ: комментарии и замечания приветствуются :)

UPD: изменил немного скрипты - местами удалил "ручную" работу и описал для Tomcat 6 вместо Tomcat 7


Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

среда, сентября 8

а они всё прут и прут. о_О

Народ, скажите, что за хрень такая? При том, что я НИЧЕГО с этими сайтами не делаю - ни оптимизации, ни каких-либо изменений в контенте! на том, который под 2 тыщи % посещений вообще всего 4 html странички статичного текста...



понедельник, июля 26

скорость загрузки сайта и Google ajaxlibs

Собственно, отказался от использования Google ajaxLibs, т.к. сайты его использующие, открывались достаточно долго. задержка загрузки порядка +3-4 секунды.
Перетащил всё на собственный CDN-сервер.
Думаю ещё попробовать CDN от Yandex - сравню скорость загрузки с ним.


Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

вторник, декабря 9

Переподключился сегодня в QIP... и...
=============================
Системное сообщение
=============================
ICQ версии 5.1 больше не поддерживается. Скачайте бесплатную авторизованную версию ICQ с официального web-сайта ICQ.

=============================
System Message
=============================
ICQ version 5.1 is no longer supported. Download a free authorized ICQ version from ICQ's official website.
малость погуглил и понял, что QIP можно забывать... ибо QIP 8070 - последняя редакция... автор пишет, что обновлений не будет... а QIP 2005 ставить - тяжёлый, зараза...
В общем подумал, подумал и перешёл на SiM... благо он и лёгенький и модульный и кроссплатформенный! 10-15 минут для изучения интерфейсу, "заточки" под себя и снова я в сети...


----------------
Now playing on iTunes: DeeJay Acoustic - Made In Earth
via FoxyTunes

воскресенье, декабря 7

Как убить рекламу в интернете?

здесь и далее серым пишу то, что утащил с проторов интернета.
утащено тут
---
Всем известно, что рекламы в интернете полным полно, она отвлекает внимание, съедает драгоценный трафик и просто замедляет загрузку web-страниц. Но есть хорошее решение - установить браузер Mozilla Firefox, Mozilla Flock или Mozilla SeaMonkey. Но ко всему прочему нужен еще плагин Adblock Plus + подписка(и) на бан-листы. Данный чудодейственный способ сохраняет до 30-50% трафика при просмотре веб-страниц и при этом не искажая их главного содержимого!


базовая подписка: Hackrus`s list anti-advertisement (general)
Данный бан-лист блокирует баннерные сети и контекстную рекламу.
подписаться

собственно, остальное вы можете найти по ссылке на источник...

----------------
Now playing on iTunes: l`Orange - Павел Воля - Продвинутые Города (l`Orange Cosmo remix)
via FoxyTunes

суббота, ноября 29

JavaScript: Копирование в буфер

Возникла тут задачка - скопировать текст в буфер обмена.
Поковырявшись на просторах интернета было найдено пара хороших примеров...
1) копирование в буфер с использованием Flash-файла
2) копирование с использованием встроенных объектов браузера

Первый метод хорош тем, что сработает везде, где не выключена поддержка флешек и JavaScript.
Второй тем, что работает с родными объектами браузера. Но его минус (а может и плюс) в том, что в них возник запрос безопастности на доступ к выполнению кода.

В итоге "родилась" библиотека, которая использует сразу оба подхода - какой-нибудь да сработает.

скачать можно тут
выполнение очень простое:
1) файл "clipboard.swf" выкладываете в корень сайта. В противном случае нужно будет исправить путь в функции CopyToClipboardSWF
2) подключаете код к себе на страницу библиотеку
3) передаёте функции CopyToClipboard в качестве параметра текст, который вы хотите скопировать.

ЗЫ: если не имеете желания получать запросы безопастности от браузеров, то можете сразу вызывать CopyToClipboardSWF с передачей ему в качестве параметра копируемого текста.

В последующем данную библиотеку буду дописывать и переписывать... :)

UPD: работоспособность тестировалось на следующих браузерах: IE 7.0, FF 3.0.4, Opera 9.60, Google Chrome 0.4.154.25, Safari 3.2.1

----------------
Now playing on iTunes: DJ Slach & DJ Max Talker - VIP MIX
via FoxyTunes