架构图

  • 关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
setenforce 0

NGINX

# nginx配置文件默认位置
/etc/nginx/nginx.conf

# 编译安装 【自定义】
/apps/nginx/conf/nginx.conf

# 启动并开机自挂载
systemctl enable --now nginx

# 查看状态
systemctl status nginx

# 代理
正向代理,(内部上网) 客户端<-->代理->服务端 【个人】

反向代理,用于公司集群架构中,客户端->代理<-->服务端 【企业】

# 配置文件【在nginx.conf末尾追加】
include /apps/nginx/conf/conf.d/*.conf;

# 创建 conf.d 配置文件
[root@myx conf.d]$ pwd
/apps/nginx/conf/conf.d

# 配置文件
				【一】
[root@myx conf.d]$ cat sgame.conf
server {
	listen 81;				# 指定访问端口
	server_name localhost;

	location / {
		root /var/www/html/sgame;	# 指定文件路径
	}
}
				【二】
[root@myx conf.d]$ cat text.conf 
server {
    listen 82;				 # 指定客户端IP,端口
    server_name localhost;

    location / {
        proxy_pass http://10.0.0.10:81;  # 指定服务端IP,端口
	}
}

Apache

# 启动并开机自挂载
systemctl enable --now httpd

# 查看状态
systemctl status httpd

# yum安装 默认配置文件
/etc/httpd/conf/httpd.conf

# 内容 /var/www/html

Apache支持PHP

[root@ops ~]#yum install gcc make libxml2-devel bzip2-devel libmcrypt-devel -y
[root@ops ~]#wget http://mirrors.sohu.com/php/php-7.3.29.tar.xz
[root@ops ~]#tar xf php-7.3.29.tar.xz -C /usr/local/src/
[root@ops ~]#cd /usr/local/src/php-7.3.29/

[root@ops ~]#./configure --prefix=/app/php \
--enable-mysqlnd --with-mysqli=mysqlnd --with-openssl \
--with-pdo-mysql=mysqlnd --enable-mbstring \
--with-freetype-dir --with-jpeg-dir --with-png-dir \
--with-zlib --with-libxml-dir=/usr --enable-xml \
--enable-sockets --with-apxs2=/app/httpd24/bin/apxs \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d \
--enable-maintainer-zts --disable-fileinfo
make -j 4 && make install

#说明:
#--enable-maintainer-zts 仅针对mpm为event和worker的情况,编译成zts模块,如果是prefork则不需要
#php-7.0 以上版本使用--enable-mysqlnd --with-mysqli=mysqlnd ,原--with-mysql不再支持

[root@ops ~]#cp /usr/local/src/php-7.3.29/php.ini-production /etc/php.ini

[root@ops ~]#vim /app/httpd24/conf/httpd.conf
	#在文件尾部加两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
	#修改下面行
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

#开启opcache加速
[root@ops ~]#vim /etc/php.ini
[opcache]
zend_extension=opcache.so 
opcache.enable=1

# 重启httpd
[root@ops ~]#systemctl restart httpd24.service

Tomcat

[jdk和tomcat安装脚本] https://myx.mynatapp.cc/archives/installtomcatsh

# 刷新配置文件
systemctl daemon-reload
# 启动tomcat,并加入开机自启
systemctl enable --now tomcat
# 查看状态
systemctl status tomcat
# 安装tomcat 前必须先部署JDK
原因: Tomcat 是用 Java 语言编写的,它需要 Java 运行环境来执行。

Java下载官网
https://www.oracle.com/java/technologies/downloads/

#添加环境变量
[root@myx ~]# vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
#以下两项非必须项
#export JRE_HOME=$JAVA_HOME/jre
#export CLASSPATH=.:$JAVA_HOME/lib/:$JRE_HOME/lib/

[root@myx ~]# . /etc/profile.d/jdk.sh

#注意:JAVA_HOME变量必须设置,否则tomcat启动时会出下面错误
[root@myx ~]# catalina.sh
[root@myx ~]# startup.sh
# 验证安装
[root@myx ~]# java -version

# Java安装路径
[root@myx ~]# which java 
/usr/local/jdk/bin/java
#创建tomcat专用帐户
[root@myx ~]$ useradd -r -s /sbin/nologin tomcat

[root@myx ~]$ find / -name java

[root@myx ~]$ cat /usr/local/tomcat/conf/tomcat.conf
JAVA_HOME=/usr/local/jdk

# 递归授权
[root@myx ~]$ chown -R tomcat.tomcat /usr/local/tomcat/

#查看日志
[root@myx ~]$ tail /var/log/messages

# 主配置文件
[root@myx ~]$ /usr/local/apache-tomcat-9.0.64/conf/server.xml

Jpress
官方网站:  http://www.jpress.io/

Halo官网:  https://halo.run/

注意:
JPress	使用Java1.8版本
Halo	使用Java11版本

【Halo开机自启】
https://myx.mynatapp.cc/archives/halo-jiao-ben-zi-qi-dong-jiao-cheng

NFS

# 查看状态
systemctl status rpcbind

# 添加共享网段
vim /etc/exports
  /data 10.0.0.0/24(rw) *

# 查看
exportfs -v

# 使用详情
https://myx.mynatapp.cc/archives/nfs-duo-wang-zhan-dai-li-fang-wen--shu-ju-gong-xiang-an-li

***注意:共享的目录一定要授权***

PG

https://myx.mynatapp.cc/archives/pg123yi-ji-duo-shi-li-ji-qun-bu-shu

搭建pg主库


# 创建postgres用户,用户组
[postgres@myx02 data]$ useradd postgres && echo 123456 --stdin postgres && id postgres

# 下载PG源码包
wget -c https://ftp.postgresql.org/pub/source/v12.3/postgresql-12.3.tar.gz --no-check-certificate

# 解压到指定目录
[root@myx02 ~]# mkdir -p /home/postgres/
[root@myx02 ~]# tar xf postgresql-12.3.tar.gz -C /home/postgres/

# 下载依赖包
[root@myx02 ~]# yum install make gcc -y

# 查看隐藏文件
[root@myx02 ~]# ll /etc/skel/ -a
总用量 24
drwxr-xr-x.  2 root root   62 7月   4 08:51 .
drwxr-xr-x. 81 root root 8192 8月  14 14:57 ..
-rw-r--r--.  1 root root   18 4月   1 2020 .bash_logout
-rw-r--r--.  1 root root  193 4月   1 2020 .bash_profile
-rw-r--r--.  1 root root  231 4月   1 2020 .bashrc

# 创建目录
mkdir -p /data/pg12 /data/pgdata5432 && chown postgres.postgres /data/pg12 /data/pgdata5432/

# 切换用户
[root@myx02 ~]# su postgres

# 切换用户,查看当前用户

[postgres@myx02 ~]$ pwd
/home/postgres

[postgres@myx02 ~]$ cd postgresql-12.3/

# 创建数据目录
[postgres@myx02 postgresql-12.3]$ ./configure --prefix=/data/pg12 --without-readline --without-zlib
make -j 4 && make install

# 配置用户环境变量
[postgres@myx02 ~]$ pwd
/home/postgres
[postgres@myx02 ~]$ vi .bash_profile

PGHOME=/data/pg12
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

# 刷新配置文件
source ~/.bash_profile

1691716413509.jpg

# 初始化
[postgres@myx02 ~]$ initdb /data/pgdata5432

(数据文件的存放路径:/data/pgdata5432)

[postgres@myx02 root]$ cd /data/pgdata5432

[postgres@myx02 pgdata5432]$ ls
base	      pg_hba.conf    pg_notify	   pg_stat	pg_twophase  postgresql.auto.conf
global	      pg_ident.conf  pg_replslot   pg_stat_tmp	PG_VERSION   postgresql.conf
pg_commit_ts  pg_logical     pg_serial	   pg_subtrans	pg_wal
pg_dynshmem   pg_multixact   pg_snapshots  pg_tblspc	pg_xact

# 修改监听地、服务端口、权限
[postgres@myx05 pgdata5432]$ vim /data/pgdata5432/postgresql.conf

listen_addresses = '*'
port = 5432

![image.png](/upload/2023/08/image-2e71608f0e8b40a4a2ff594cb1b2c1de.png)

# 启动
[postgres@myx02 pgdata5432]$ pg_ctl -D /data/pgdata5432 -l logfile start
waiting for server to start.... done
server started

# 查看状态
[postgres@myx02 pgdata5432]$ pg_ctl -D /data/pgdata5432 -l logfile status
pg_ctl: server is running (PID: 21065)
/data/pg12/bin/postgres "-D" "/data/pgdata5432"

# 修改数据库密码和创建流复制操作的用户:
[postgres@myx02 pgdata5432]$ psql -U postgres -p 5432
psql (12.3)
Type "help" for help.

postgres=# ALTER USER postgres WITH PASSWORD '123456';              
ALTER ROLE
postgres=# CREATE ROLE replica login replication encrypted password '123456';
CREATE ROLE
postgres=# 

# 最后一行追加
[postgres@myx02 pgdata5432]$ vim /data/pgdata5432/pg_hba.conf
host    replication     replica         10.0.0.0/24               md5

# 重启数据库,查看端口
[postgres@myx02 pgdata5432]$ pg_ctl -D /data/pgdata5432 -l logfile restart
waiting for server to shut down.... done
server stopped
waiting for server to start.... done
server started

[postgres@myx02 pgdata5432]$ ss -ntlp | grep 543*
LISTEN     0      128          *:5432                     *:*                   users:(("postgres",pid=21115,fd=3))
LISTEN     0      128       [::]:5432                  [::]:*                   users:(("postgres",pid=21115,fd=4))

# 查看复制流用户是否创建:
[postgres@myx05 pgdata5432]$ psql -U 
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 replica   | Replication                                                | {}

从库配置

# 创建用户
[postgres@myx03 data]$ useradd postgres && echo 123456 --stdin postgres && id postgres

# 用scp将主库的pg12和pgdata5432拉取到本地
[root@myx03 data]$ scp -r 10.0.0.9:/data/pg12 /data/

[root@myx03 data]$ scp -r 10.0.0.9:/data/pgdata5432 /data/

### 一定要授权 ###
[root@myx03 pgdata5433]$ chmod -R 777 *

# 修改
[root@myx03 data]$ mv pgdata5432/ pgdata5433

[root@myx03 data]$ vim +63 /data/pgdata5433/postgresql.conf

listen_addresses = '*'
port = 5433

# 授权
[root@myx03 ~]$ chmod 750 /etc/bashrc

[root@myx03 ~]$ chmod 777 .bash_profile

# 刷新配置文件
[postgres@myx03 ~]$ source .bash_profile

# 配置用户环境变量
[postgres@myx03 ~]$ pwd
/home/postgres

vi .bash_profile

PGHOME=/data/pg12
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

source ~/.bash_profile

[postgres@myx03 data]$ psql -U postgres -p 5433
psql (12.3)
Type "help" for help.

postgres=# DROP ROLE replica;
DROP ROLE

postgres=# CREATE ROLE replica login replication encrypted password '123456';
CREATE ROLE

=================== 流复制  ===================
# 停止数据库
[postgres@myx03 pgdata5433]$ pg_ctl -D /data/pgdata5433/ -l logfile stop

# 删除pgdata5433下的所有数据
[postgres@myx03 pgdata5433]$ rm -rf *

# 切回主目录
[postgres@myx03 pgdata5433]$ cd

# 拷贝主库数据
[postgres@myx03 ~]$ pg_basebackup -h 10.0.0.12 -p 5432 -D /data/pgdata5433 -U replica -P -v -R -X stream -C -S pgstandby7

# 修改启动端口
[postgres@myx05 pgdata5433]$ vim postgresql.conf 

port = 5433

# 启动数据库
[postgres@myx03 pgdata5433]$ pg_ctl -D /data/pgdata5433/ -l logfile start

# 切回主库查看
[postgres@myx05 pgdata5433]$ psql -U postgres -p 5433
psql (12.3)
Type "help" for help.

postgres=# select usename , application_name , client_addr,sync_state from pg_stat_replication;
 usename | application_name | client_addr | sync_state 
---------+------------------+-------------+------------
 replica | walreceiver      | 10.0.0.10   | sync
(1 row)

QQ农场

【MySQL数据库】 https://myx.mynatapp.cc/archives/gitlabmysql-shu-ju-ku---ji-qun-cluster

# 在mysql主库创建远程登录账户‘myx’

mysql> GRANT ALL PRIVILEGES ON *.* TO 'myx'@'10.0.0.%' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> SELECT Host, User FROM mysql.user;
+-------------+---------------+
| Host        | User          |
+-------------+---------------+
| %           | wordpress     |
| 10.0.0.%    | myx           |
| localhost   | mysql.session |
| localhost   | mysql.sys     |
| localhost   | root          |
| localhost   | ucenter       |
+-------------+---------------+
6 rows in set (0.00 sec)

# 远程登录测试
[root@myx03 ~]$ mysql -umyx -h10.0.0.12 -p123456 -P3306

访问IP地址

Git上传下载代码

https://myx.mynatapp.cc/archives/gitlabmysql-shu-ju-ku---ji-qun-cluster