侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

httpd+tomcat (mod_proxy) 负载均衡 + SSL

2023-11-30 星期四 / 0 评论 / 0 点赞 / 47 阅读 / 10488 字

本文目录 一、基础环境搭建 二、Tomcat 部署 三、httpd 安装 四、httpd 连接 Tomcat (mod_proxy插件) 五、https 集成(mod_ssl插件) 六、

本文目录

  • 一、基础环境搭建
  • 二、Tomcat 部署
  • 三、httpd 安装
  • 四、httpd 连接 Tomcat (mod_proxy插件)
  • 五、https 集成(mod_ssl插件)
  • 六、签发证书(openssl 工具)
  • 七、免密启动httpd

操作系统

Red Hat Enterprise Linux Server release 7.2 (Maipo) x86_64

运行用户:app <sudo 权限>

软件版本

httpd -v

    Server version: Apache/2.4.6 (Red Hat Enterprise Linux)

    Server built: Jul 12 2016 05:02:54

apache-tomcat-7.0.73

java -version

    java version "1.6.0_45"

用户配置

groupadd other

useradd app -g other

passwd app

#添加sudo 权限

chmod u+w /etc/sudoers

vim /etc/sudoers

#这里设置other 整个组都将有sudo权限%other ALL=(ALL) NOPASSWD: ALL

chmod u-w /etc/sudoers

#新建安装目录

mkdir -p /opt/app/

chown -R app:other /opt/app/

 

一、基础环境搭建<root用户登录>

#hostname 修改

vim /etc/cloud/cloud.cfg

preserve_hostname: true

#设置 hostname

hostnamectl set-hostname HOSTNAME10

reboot

hostname

#JDK 环境搭建

https://my.oschina.net/simplecnst/blog/824352

 

二、Tomcat 部署<app用户登录>

#建立统一工作目录

cd /opt/app/

mkdir -p server src support/ca

#下载解压

cd src

wget http://apache.website-solution.net/tomcat/tomcat-7/v7.0.73/bin/apache-tomcat-7.0.73.tar.gz

#解压到server目录

tar xzvf apache-tomcat-7.0.73.tar.gz -C ../server/

cd ../server/

mv apache-tomcat-7.0.73 tomcat

#配置(更改端口、连接器等一些参数)

cd tomcat/

vim conf/server.xml

# 启动 停止

./bin/catalina.sh start

./bin/catalina.sh stop

# 注意防火墙

http://[ServerIP]:8080/

 

三、httpd 安装<app用户登录>

sudo yum install httpd

#重启

sudo systemctl restart httpd

#测试 有显示相关页面ok

http://[ServerIP]

 

四、httpd 连接 Tomcat (mod_proxy插件)<app用户登录>

apache 2.4 以后自带 mod_proxy

#检测是否有mod_proxy 模块

httpd -D DUMP_MODULES | grep proxy

#此目录是通过yum 安装方式的默认目录

cd /etc/httpd/

#编辑mod_proxy 的配置文件

vim conf.modules.d/balance.conf

A)、Sticky-session (Session 复制模式 PS:并未做测试)

#提供基础的代理功能LoadModule proxy_module modules/mod_proxy.so#提供负载均衡的功能LoadModule proxy_balancer_module modules/mod_proxy_balancer.so#代理http协议LoadModule proxy_http_module modules/mod_proxy_http.so#代理ajp协议LoadModule proxy_ajp_module modules/mod_proxy_ajp.soLoadModule proxy_http_module modules/mod_status.so#负载均衡的算法模块LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.soLoadModule slotmem_shm_module modules/mod_slotmem_shm.so#兼容低版本访问LoadModule access_compat_module modules/mod_access_compat.so#如果访问/lbmanager表示不转发ProxyPass /lbmanager !ProxyPass /status !ProxyRequests OffProxyPreserveHost onProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=OffProxyPassReverse / balancer://cluster/#代理关联配置loadfactor可以分发请求权重,loadfactor越大,权重越大<Proxy balancer://mycluster># BalancerMember http://localhost:8080 loadfactor=1 route=tomcat7_1# BalancerMember http://localhost:8081 loadfactor=1 route=tomcat7_2#使用ajp 方式连接Tomcat  BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=tomcat7_1  BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=tomcat7_2#热部署,当着备份服务,当tomcat7_1和tomcat7_2死掉的时候,就自动访问tomcat7_3# BalancerMember ajp://localhost:7009 loadfactor=1 route=tomcat7_3 status=+H#设置代理的算法  ProxySet lbmethod=bybusyness</Proxy>#此配置上生产环境请注释!!! 仅调试#负载均衡控制台,通过http://[ServerIP]/lbmanager 访问<Location /lbmanager>  SetHandler balancer-manager  Require all granted</location><Location /status>  SetHandler server-status  Require all granted</location>#此配置上生产环境请注释!!!

B)、No-sticky-session (并未测试)

#提供基础的代理功能LoadModule proxy_module modules/mod_proxy.so#提供负载均衡的功能LoadModule proxy_balancer_module modules/mod_proxy_balancer.so#代理http协议LoadModule proxy_http_module modules/mod_proxy_http.so#代理ajp协议LoadModule proxy_ajp_module modules/mod_proxy_ajp.so#负载均衡的算法模块LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.soLoadModule slotmem_shm_module modules/mod_slotmem_shm.so#兼容低版本访问LoadModule access_compat_module modules/mod_access_compat.so#开启反向代理ProxyRequests OffProxyPass / balancer://mycluster/#代理关联配置loadfactor可以分发请求权重,loadfactor越大,权重越大<Proxy balancer://mycluster>#  BalancerMember http://localhost:8080 loadfactor=1 route=tomcat7_1#  BalancerMember http://localhost:8081 loadfactor=1 route=tomcat7_2  BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=tomcat7_1  BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=tomcat7_2  #热部署,当着备份服务,当tomcat7_1和tomcat7_2死掉的时候,就自动访问tomcat7_3   #BalancerMember http://localhost:9080 loadfactor=1 route=tomcat7_3  status=+H #设置代理的算法#以下可选参数#lbmethod=byrequests 按照请求次数均衡(默认) #lbmethod=bytraffic 按照流量均衡 #lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器) ProxySet lbmethod=bybusyness</Proxy>#此配置上生产环境请注释!!!#负载均衡控制台,通过http://[ServerIP]/lbmanager 访问<Location /lbmanager>        SetHandler balancer-manager        Require all granted</location><Location /status>        SetHandler server-status        Require all granted</location>#此配置上生产环境请注释!!!

测试

访问

http://[ServerIP]/lbmanager 查看集群部署情况

 

五、https 集成(mod_ssl插件)<app用户登录>

#安装

cd /etc/httpd/conf.d

ll

sudo yum -y install mod_ssl

ll

# 你会发现多了ssl.conf

 

# 测试

https://[ServerIP]

 

# 开启访问80 端口自动跳转443

#在末尾追加

vim /etc/httpd/conf/httpd.conf

RewriteEngine on#另一种写法:RewriteCond %{SERVER_PORT} 80RewriteCond %{SERVER_PORT} !^443$#301表示永久移走RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

#访问 会自动跳转

http://[ServerIP]

 

六、签发证书(openssl 工具)<app用户登录>

PS:证书相关知识

x509证书一般会用到三类文,key,csr,crt。

Key 是私用密钥openssl格,通常是rsa算法。

Csr 是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。

crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。 

#建立ca目录

cd

mkdir ca 

cd ca

 

1. key的生成 (密码:password)随后重启httpd 需要输入此密码

openssl genrsa -des3 -out server.key 2048 

2. 生成CA的crt

openssl req -new -x509 -key server.key -out ca.crt -days 3650 -subj / "/C=CN/ST=ShangHai/L=PuDong/O=CAS/OU=it/CN=*.cas.cn"

3. csr的生成方法

openssl req -new -key server.key -out server.csr -subj / "/C=CN/ST=ShangHai/L=PuDong/O=CAS/OU=it/CN=*.cas.cn"

4. crt生成方法(此处可以购买证书或者自己签发)

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

5. 证书合并:

cat server.key server.crt > server.pem

#证书配置至httpd

pwd

/home/app/ca

#拷贝证书到工作目录

cd ..

cp -R ca/ /opt/app/support/

 

#更改配置到我们生成的证书

sudo vim /etc/httpd/conf.d/ssl.conf

#找到一下配置

#默认使用证书# Server Certificate:SSLCertificateFile /etc/pki/tls/certs/localhost.crt# Server Private Key:SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

#更改后,指向我们生成的证书

# Server Certificate:SSLCertificateFile /opt/app/support/ca/server.crt# Server Private Key:SSLCertificateKeyFile /opt/app/support/ca/server.key

#重启httpd

sudo systemctl restart httpd

键入我们生成key 的密码:

#访问 会自动跳转

http://[ServerIP]

 

七、免密启动httpd

vim /etc/httpd/conf.d/ssl.conf

# 更改一下

SSLPassPhraseDialog  exec:conf/ssl_pass.sh

vim /etc/httpd/conf/ssl_pass.sh

#加入一个echo语句

#!/bin/shecho "password"

 

#然后让它有执行权限

chmod +x conf/ssl_pass.sh

重启测试

广告 广告

评论区