1. Java
sudo add-apt-repository ppa:webupd8team/javasudo apt-get update
sudo apt-get install oracle-java6-installer
в конец ~/.bashrc добавляем
export JAVA_HOME=/usr/lib/jvm/java-6-oracle
2. Tomcat
sudo apt-get install tomcat7
Tomcat будет стартовать при старте системы, приложения будут разворачиваться на порту 8080 (каждое в своём соответствующем контексте) если .war залить в /var/lib/tomcat7/webapps/.
Так уже можно работать, но для клиентов нужно спрятать tomcat за прокси, чтобы иметь возможность фровардить порты и прятать контексты за доменными именами.
3. Nginx
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
В конец файла /etc/apt/sources.list добавляем строки:
deb http://nginx.org/packages/ubuntu/ codename nginx
deb-src http://nginx.org/packages/ubuntu/ codename nginx
где codename - имя дистрибутива (посмотрите его в строчках выше или получите из сat /etc/*-release)
sudo apt-get update
sudo apt-get install nginx
sudo apt-get install nginx
Это почти всё. Осталось только настроить проксирование запросов. Допустим, мы пишем конфиг для нашего хоста newgoogle.com, приложение для которого мы в tomcat-e развернули на контексте /ng:
sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/newgoogle.com.conf
sudo vim /etc/nginx/conf.d/newgoogle.com.conf
меняем server_name на newgoogle.com и меняем location-секцию на:
location / {
proxy_pass http://localhost:8080/ng/;
proxy_set_header X-Real-IP $remote_addr;
}
P.s.: Ничего сверхестественного тут нет, любой админ сделает вам это одним пальцем с закрытыми глазами после восьми банок пива. Но зачем его беспокоить? То, что описано тут - достаточно тривиально, и сделав это однажды просто повторяйте всегда при необходимости точно также. Пусть гуру-админы занимаются тюнингом наших серверов и тонкой настройкой сетевого трафика. Простые вещи делаем сами.
Доброе времени суток. Это все понятно, работает. Но как заставить Tomcat читать верный заголовок с реальным ip адресом клиента, а не 127.0.0.1 nginx?
ОтветитьУдалитьproxyPort в коннекторе томката указать, тогда будет реальный ip
ОтветитьУдалить