Tongweb8.0 支持liferay portal要点

应用场景:
tongweb:8.0.4.0
liferay portal: 6.2.5 GA6社区版
jdk:jdk1.8.0_22164-Bit
hsqldb-2.6.1
操作系统:window10 64位
系统内存:8GB
本配置都在E:下进行,目录结构如下:
TongWeb8.0:应用服务器的安装目录
portal:应用程序部署目录
适配过程
把从官网下载的liferay的data目录拷贝到E:\portal下
在E:\portal下新建文件夹webapps,并把liferay的主工程ROOT和应用程序管理插件marketplace-portlet拷贝到webapps下
进入E:\portal\webapps\ROOT\WEB-INF\classes,新建文件portal-ext.properties,并录入以下内容后保存:

#通过liferay应用程序管理器上传后地址
auto.deploy.dest.dir=${liferay.home}/webapps
#是否开启jsp动态重载功能。默认情况下,此功能处于启用状态。
direct.servlet.context.reload=false
#数据库地址
jdbc.default.driverClassName=org.hsqldb.jdbcDriver
jdbc.default.password=123456
jdbc.default.url=jdbc:hsqldb:mem:mydb

进入F:\TongWeb8.0.4.0\bin,新建文件portal-setup-wizard.properties,并录入以下内容后保存:

admin.email.from.address=test@liferay.com
admin.email.from.name=Test Test
liferay.home=E:/portal
setup.wizard.enabled=false

进入F:\TongWeb8.0.4.0\bin,
Cd / F:\TongWeb8.0.4.0/domains/domain1/conf
修改tongweb.xml红色为修改的内容:

<start-args>
</start-args>之间加字符集和时区参数、其他选项
<arg desc="TongWeb字符集" name="-Dfile.encoding=UTF8"/>
<arg desc="时区" name="-Duser.timezone=GMT+8"/>
<arg desc="其他选项" name="-Dcom.sun.media.jai.disableMediaLib=true"/>

把liferay自带tomcat下的ext下的包拷贝到F:\TongWeb8.0.4.0\domains\domain1\lib\app下

3、创建数据源
创建数据库liferay-tongweb(步骤2.4中配置hsqldb)

Jartoskip:
activation.jar,ccpp.jar,hsql.jar,jms.jar,jta.jar,jtds.jar,junit.jar,jutf7.jar,mail.jar,mysql.jar,persistence.jar,portal-service.jar,portlet.jar,postgresql.jar,support-tomcat.jar,jruby.jar

5、适配验证
进入F:\TongWeb8.0.4.0\bin,双击startserver.bat,启动应用服务器
登录应用服务器控制台
https://127.0.0.1:9060/console/
thanos/thanos123.com
点击应用管理,看看部署应用列表中是否有ROOT和marketplace-portlet,是否为已启用
登录portal系统
http://localhost
test@liferay.com/test
经过系统引导,进入如下页面:

查看F:\TongWeb8.0.4.0\logs\server.log或E: \portal\logs\ liferay.xxxx-xx-xx.log
liferay.2022-09-09.log两个日志文件,做进一步跟踪分析

支持Jetspeed应用要点

应用场景:

TongWeb8.0.4.0
Jet speed安装包jetspeed-installer-2.3.1.jar
C:\Users\dell>java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

2先把jetspeed的安装程序进行安装,安装过程中会初始化数据库。
JetSpeed2提供源码编译安装和执行程序安装两种方式。以执行程序安装方式为例进行说明。首先在Apache官网下载安装程序jetspeed-installer-2.3.1.jar即可。注意:将此jar放在非中文路径下,否则安装出问题。
图形界面安装命令:

java -jar  jetspeed-installer-2.3.1.jar

字符界面安装命令:

java -jar  jetspeed-installer-2.3.1.jar text

安装过程很简单,主要就是建数据库、把Tomcat和JetSpeed解压到某一目录下。查看其安装目录就是Tomcat下部署了JetSpeed
2.1无法安装的问题的解决:开发上次遇到安装问题估计是这个

E:\>java -jar  jetspeed-installer-2.3.1.jar text
Error: Unable to access jarfile jetspeed-installer-2.3.1.jar

解决方法:---用cmd的管理员运行方式安装

Cd \windows\system32> java -jar  jetspeed-installer-2.3.1.jar

2.2本次测试采用的是ORACLE数据库,本测试采用ORACLE21c版本,不能用ORACLE11G,请注意这个提示
3.装好TongWeb8.0.4.0
后把tomcat8.5.57/lib下的公用类,放在TongWeb8的/lib/app下。

F:\TongWeb8.0.4.0\TongWeb8.0.4.0\domains\domain1\lib\app

4、jartoskip:

5、参考conf\Catalina\localhost下jetspeed.xml建数据源jdbc/jetspeed

6、login.conf配置:
把webapps\jetspeed\WEB-INF\lib下jetspeed-security-2.3.0.jar中的login.conf删了,并在TongWeb的conf\login.config中加上:( TongWeb8.0.4.0\domains\domain1\conf)
Jetspeed {
org.apache.jetspeed.security.impl.DefaultLoginModule required;
};
7.部署webapps下的jetspeed即可。

8.还要部署demo, j2-admin, webcontent2 这三个应用,并增加参数
跨上下文的访问

9.还得把webapps\jetspeed\WEB-INF\lib下的jetspeed-security-2.3.0.jar, db-ojb-1.0.3.jar, slf4j的jar也放在TongWeb的lib下一份。要不那个JAAS配置报找不到类。
10、创建jetspeed安全域和安全用户。
11.最后启动,出现此页面,用户名/密码(jetspeed/jetspeed)登录应当成功。

三、THS6支持TongWeb8 的国密设置:

THS6 设置
#user  nobody;
worker_processes 4;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log logs/error.log error;
pid logs/httpserver.pid;

events {
worker_connections 1024;
use epoll;
}

http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log logs/access.log main;
sendfile on;
#tcp_nopush     on;
#keepalive_timeout  0;
keepalive_timeout 60;
#gzip  on;

server {
listen 8080;
server_name localhost;
access_log logs/host.access.log main;
# ssl_protocols GMTLSv1.1;
ssl_certificate crt/SS.pem;
ssl_certificate_key crt/SS.key.pem;
ssl_certificate crt/SE.pem;
ssl_certificate_key crt/SE.key.pem;
error_page 500 502 503 504 /50x.html;

location /examples {

proxy_pass http://10.10.81.161:8088/examples;
root html;
index index.html index.htm;
}

location = /50x.html {
root html;
}

}
#}

#        events {
#           worker_connections 1024;
#          use epoll;
#    }

# HTTPS server

server {
listen 443 ssl;
server_name localhost;
ssl_protocols  GMTLSv1.1;
ssl_certificate crt/SS.pem;
ssl_certificate_key crt/SS.key.pem;
ssl_certificate crt/SE.pem;
ssl_certificate_key crt/SE.key.pem;
#https key
ssl_certificate crt/common_cert/server.crt;
ssl_certificate_key crt/common_cert/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location /examples{
proxy_pass http://10.10.81.161:8080/examples;
root html;
index index.html index.htm;
}
}

}

部署应用examples,WEB端口8088,访问:http://IP:8088/examples

3、访问THS https://IP/examples/

四、TongWeb8的国密设置:
WEB容器中TongWeb 通道的配置:
通道的配置基本属性:

安全属性

开启SSL---国密证书

部署应用:
用安全浏览器访问:
安全浏览器配置要点:
国密SSL设置,选中
国密SSL的可信任站点的设置,IP和端口
注意:如果安全浏览器不能访问,一般是受licesen限制,如果在限制时间内可以进行国密SSL设置,如果过期了就不能进行国密SSL设置了,所以访问不了国密应用。
举例:用安全浏览器访问应用:

五、实现XFF设置:

在TongWeb6和7 有这个,com.tongweb.catalina.valves.RemoteIpValve,protocolHeader=X-Forwarded-Proto,remoteIpHeader=X-Forwarded-For取XFF地址,这个在以前的一个项目上用到过

在TongWeb8里这样设置:
点击基础配置—安全配置:打开解析XFF头:

具体配置

具体的XFF地址在access.log里面找。
六、THS6.0 HA+TongWeb8.0的实现:
进入THS界面配置:
http://ip:8000/console 用户名:admin 默认密码:ths#123.com
虚拟IP 10.10.81.151
httpserver.conf 配置

[root@node1 conf]# vi httpserver.conf

#user  nobody;
worker_processes 4;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log logs/error.log error;
pid logs/httpserver.pid;

events {
worker_connections 1024;
use epoll;
}

http {
include tw-conf/*.conf;
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log logs/access.log main;
status_zone;
sendfile on;
#tcp_nopush     on;
#keepalive_timeout  0;
keepalive_timeout 60;
#gzip  on;

upstream proxyserver {
server 10.10.81.161:8088;
server 10.10.81.192:8088;
keepalive 32;
keepalive_requests 1000;
keepalive_timeout 60s;
health_check interval=30000 rise=1 fall=3 type=tcp;
}

server {
listen 8090;
server_name localhost;
access_log logs/host.access.log main;
error_page 500 502 503 504 /50x.html;

location /favicon.ico {
log_not_found off;
access_log off;
}

location ~ /\. {
deny all;
access_log off;
log_not_found off;
}

location /examples {
#add_header Content-Security-Policy "upgrade-insecure-requests";
proxy_redirect http:// $scheme://;
proxy_redirect http:// https://;
proxy_pass http://proxyserver;
}

location /api {
access_log off;
api write=off;
status_bypass on;
allow 127.0.0.1;
deny all;
}

location = /50x.html {
root html;
}
}
# HTTPS server
#server {
#listen       443 ssl;
#server_name  localhost;
#ssl_protocols TLSv1.2 TLSv1.3 GMTLSv1.1;
#GMTLS key
#ssl_certificate      crt/SS.pem;
#ssl_certificate_key  crt/SS.key.pem;
#ssl_certificate      crt/SE.pem;
#ssl_certificate_key  crt/SE.key.pem;
#https key
#ssl_certificate      crt/common_cert/server.crt;
#ssl_certificate_key  crt/common_cert/server.key;
#ssl_session_cache    shared:SSL:1m;
#ssl_session_timeout  5m;
#ssl_ciphers  HIGH:!aNULL:!MD5;
#ssl_prefer_server_ciphers  on;
#location / {
#root   html;
#index  index.html index.htm;
#}
#}
}

THS-2的配置:

用上述配置完后可能要经过第二步修改配置文件的过程,因为有时会报如下错误:

[2022-10-17 14:41:20] bogus VRRP packet received on ens192 !!!
[2022-10-17 14:41:20] VRRP_Instance(VI_1) ignoring received advertisment...
[2022-10-17 14:41:21] (VI_1): ip address associated with VRID 53 not present in MASTER advert : 10.10.81.151

httpserverHA.conf 配置
修改配置文件httpservercHA.conf 两个THS都要改

! Configuration File for httpserverHA

global_defs {
notification_email {
dongph@agilenet.com.cn
}
notification_email_from Alexandre.Cassen@firewall.loc
!   smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id host_10.18.0.92
}

vrrp_script Monitor_httpserver {
script "/opt/TongWeb/THS/bin/monitor.sh"
interval 1
}

vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 53  改为  virtual_router_id 56
priority 91
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}

track_script {
Monitor_httpserver
}
virtual_ipaddress {
10.10.81.151
}
virtual_ipaddress_excluded {
}

smtp_alert
}

启动httpserverHA,
ip address 会出现虚拟IP 10.10.81.151
输入虚拟IP 和访问端口前缀即可访问了:

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐