安装Nginx
CentOS_8安装Nginx
首先添加 EPEL
存储库
sudo dnf install -y epel-release
安装Nginx
sudo dnf install -y nginx
验证安装
sudo nginx -v
配置开启启动并直接启动
sudo systemctl enable nginx --now
检查 Nginx 是否运行
curl -I 127.0.0.1
输出类似到内容
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sun, 02 Apr 2023 06:15:41 GMT
Content-Type: text/html
Content-Length: 3429
Last-Modified: Thu, 10 Jun 2021 09:09:03 GMT
Connection: keep-alive
ETag: "60c1d6af-d65"
Accept-Ranges: bytes
配置防火墙策略,允许Web访问
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
安装配置PostgreSQL
安装PostgreSQL
启用 PostgreSQL 官方存储库
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
从 CentOS 默认库中禁用 PostgreSQL
sudo dnf module -qy disable postgresql
安装 PostgreSQL 12
sudo dnf install -y postgresql12 postgresql12-server
初始化PostgreSQL
初始化数据库,然后配置开机启动并直接启动
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12 --now
设置 postgres
用户的密码
sudo passwd postgres
登录到 postgres
用户
su -l postgres
进入 Postgres 数据库
psql
配置数据库本地连接
为 IPv4 和 IPv6 本地主机配置身份验证方法
# METHOD 可以是 "trust", "reject", "md5", "password", "scram-sha-256", "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" 或 "cert"
# 注意 "password" 是以明文方式发送; "md5" 或 "scram-sha-256" 是将密码加密后发送
sudo vim /var/lib/pgsql/12/data/pg_hba.conf
找到 host IPv4 和 IPv6 线路,配置本地连接的验证方法
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
重启服务启用配置
sudo systemctl restart postgresql-12
配置PostgreSQL
创建 OnlyOffce 的 PostgreSQL 数据库和用户
先切换到目录 /tmp
下,这样命令历史将会在重启后消除
cd /tmp
创建用户
sudo -i -u postgres psql -c "CREATE USER onlyofficeuser WITH PASSWORD 'onlyofficepassword';"
创建数据库,并授予权限
sudo -i -u postgres psql -c "CREATE DATABASE onlyofficedb OWNER onlyofficeuser;"
安装 RabbitMQ
CentOS_8安装RabbitMQ
安装 EPEL 存储库
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
在 CentOS 8 上,建议同时启用 PowerTools 存储库,因为 EPEL 包可能依赖于它的包
sudo dnf config-manager --set-enabled powertools
可以通过运行以下命令来确认 EPEL 存储库的添加和功能
sudo dnf repolist epel
添加 PackageCloud 存储库
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
同时添加 Erlang 存储库
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
配置 RabbitMQ 存储库后,通过运行以下命令安装 RabbitMQ Server
sudo yum makecache -y --disablerepo='*' --enablerepo='rabbitmq_rabbitmq-server'
sudo yum -y install rabbitmq-server
启动并启用该服务以在系统启动时启动
echo "127.0.0.1 $(hostname -s)" | sudo tee -a /etc/hosts
sudo systemctl enable --now rabbitmq-server
检查 RabbitMQ 的状态
sudo systemctl status rabbitmq-server
# 查看细节
sudo rabbitmqctl status
可以选择启用 RabbitMQ 管理 Web 仪表板以便于管理,Web 服务在 TCP 端口 15672
上侦听
sudo rabbitmq-plugins enable rabbitmq_management
如果 Firewalld 服务,需要允许端口 5672
和 15672
sudo firewall-cmd --add-port={5672,15672}/tcp --permanent sudo firewall-cmd --reload
安装OnlyOffice
添加 ONLYOFFICE Docs 存储库
sudo yum install -y https://download.onlyoffice.com/repo/centos/main/noarch/onlyoffice-repo.noarch.rpm
安装 cabextract
和 xorg-x11-font-utils
包
sudo dnf install -y cabextract xorg-x11-font-utils
安装 msttcore 字体包
sudo rpm -i https://sourceforge.net/projects/mscorefonts2/files/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
安装 ONLYOFFICE Docs
sudo dnf install -y onlyoffice-documentserver
更改默认的 ONLYOFFICE Docs 端口,默认情况下,ONLYOFFICE Docs 使用端口 80 ,从 4.3 版本开始可以更改 ONLYOFFICE Docs 的端口,ONLYOFFICE Docs 使用的端口的完整列表
通过修改环境变量 DS_PORT
到值来修改默认端口
export DS_PORT=8181
如果您想将 ONLYOFFICE Docs 协议更改为 HTTPS,不是直接将端口更改为 443,而是需要配置
停止Nginx服务
不停止,后面直接重启也可
sudo systemc stop nginx
复制模板覆盖原有配置
v5.3 及更高版本切换到 HTTPS ,复制 ds-ssl.conf.tmpl
模板文件覆盖 ds.conf
配置文件
sudo cp -f /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf
其他版本参考: Switching ONLYOFFICE Docs to HTTPS protocol
修改配置
修改 /etc/onlyoffice/documentserver/nginx/ds.conf
中 {{...}}
参数信息
sudo vim /etc/onlyoffice/documentserver/nginx/ds.conf
{{SSL_CERTIFICATE_PATH}}
证书路径
{{SSL_KEY_PATH}}
证书私钥路径
{{SSL_VERIFY_CLIENT}}
是否启用客户端证书验证,可选值:on
、off
、optional
和 optional_no_ca
{{CA_CERTIFICATES_PATH}}
客户端证书路径
{{ONLYOFFICE_HTTPS_HSTS_MAXAGE}}
设置 HSTS max-age 的高级配置选项,仅在使用 SSL 时适用(通常默认为 31536000
,这被认为足够安全
{{SSL_DHPARAM_PATH}}
Diffie-Hellman (密钥交换协议) 参数的路径
更多Ngeinx的SSL参数配置信息参考; Module ngx_http_ssl_module
重启Nginx
sudo systemctl restart nginx
运行升级脚本
运行命令将配置将http请求重定向到https
sudo bash /usr/bin/documentserver-update-securelink.sh
默认情况下使用 PostgreSQL 用作数据库。如果想使用 MySQL 而不是 PostgreSQL,请在运行 documentserver-configure.sh
脚本之前添加两个环境变量来定义数据库类型和端口:
export DB_TYPE=mysql
export DB_PORT=6443
运行 documentserver-configure.sh
脚本开始部署
documentserver-configure.sh
系统将要求您指定 PostgreSQL 和 RabbitMQ 连接参数,使用以下数据
PostgreSQL:
- Host:
localhost
- Database:
onlyofficedb
- User:
onlyofficeuser
- Password:
onlyofficepassword
RabbitMQ:
- Host:
localhost
- User:
guest
- Password:
guest
添加防火墙规则
sudo firewall-cmd --zone=public --add-port=8181/tcp --permanent
sudo firewall-cmd --reload
查看 http 使用到的端口的 SELinux 安全上下文
semanage port -l | grep http
查询到类似到内容
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 3000, 8000, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
修改 SELinux 标记类型,使其与端口 80 匹配
semanage port -a -t http_port_t -p tcp 8181
# ValueError: Port tcp/8181 already defined 使用以下
sudo semanage port -m -t http_port_t -p tcp 8181
学习笔记/Linux/SELinux上下文策略管理
重启 Nginx
sudo systemctl restart nginx