Установка Tomcat + Nginx на CentOS 6
Подготовка
Прежде всего нам понадобится репозиторий Epel, подключаем по официальной инструкции
Кроме того, нам понадобится репозиторий nginx, потому что там самая свежая версия.
Пакет для установки репозитория берем из официальной инструкции
Для CenOs 6 например делаем так:
rpm -Uvh http://nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm
Tomcat
Установить пакеты
yum install java-1.7.0-openjdk yum install tomcat tomcat-admin-webapps tomcat-native log4j tomcat-webapps
в целях совместимости с инсталляциями, которые делаются из tar-архивов и для удобства разработчиков делаем символическую ссылку в /opt:
ln -s /usr/share/tomcat /opt
автозагрузка
chkconfig tomcat on
доступ к админке, и разрешение деплоя скриптом, в /etc/tomcat/tomcat-users.xml
:
<role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/> <role rolename="manager-script"/> <user username="manager-script" password="SyHaddim" roles="manager-script"/>
Основные настройки Tomcat находятся в /etc/sysconfig/tomcat
, например такие:
JAVA_OPTS="-Djava.awt.headless=true \ -XX:MaxPermSize=384m -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled \ -Xms5120m -Xmx5120m -XX:+UseConcMarkSweepGC \ -Dspring.profiles.active=production \ -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=58084 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.1.42 \ -Djsse.enableSNIExtension=false" CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=58084 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.1.42"
Включаем NIO (Non-Blocking Input-output) HTTP1.1 Java connector.
Для этого в /etc/tomcat/server.xml
меняем строку:
<Connector port="8080" protocol="HTTP/1.1"
на:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
Стартуем tomcat service tomcat start
и смотрим /var/log/tomcat/catalina.out
. Строка со словами INFO: Server startup in 765 ms
говорит о том, что мы все сделали правильно.
опционально – для высокой нагрузки нужно увеличить лимиты (количество процессов и количество файлов) для пользователя tomcat: в файле /etc/security/limits.conf
tomcat soft nproc 12000 tomcat hard nproc 15000 tomcat soft nofile 10000
Nginx
Ставим пакет:
yum install nginx
Связка с Tomcat:
Cоздаем /etc/nginx/conf.d/mytest1.ru.conf
:
пусть сайт у нас называется mytest1.ru
а приложение test_app
server { server_name mytest1.ru; location / { rewrite ^(.*)$ /test_app$1 break; proxy_pass http://localhost:8080; proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header Upgrade $http_upgrade; # websocket reverce proxy proxy_set_header Connection "upgrade"; # websocket reverce proxy proxy_no_cache 1; } }
Ставим в автозапуск
chkconfig nginx on
Стартуем
service nginx start
Готово!