lnamt部署
环境3台机
第一台 192.168.159.141 配置nginx负载
第二台 192.168.159.147 lamt
第三台 192.168.159.139 lnmt
lamt的搭建
部署tomcot
java环境安装
安装jdk环境
[root@node1 ~]# yum -y install java-11-openjdk*
查看安装的版本
[root@node1 ~]# java -version
openjdk version "11.0.22" 2024-01-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.22.0.7-1) (build 11.0.22+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.22.0.7-1) (build 11.0.22+7-LTS, mixed mode, sharing)
上官网下载tomcat
[root@node1 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.19/bin/apache-tomcat-10.1.19.tar.gz
--2024-02-26 14:57:05-- https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.19/bin/apache-tomcat-10.1.19.tar.gz
Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12718453 (12M) [application/x-gzip]
Saving to: ‘apache-tomcat-10.1.19.tar.gz’
apache-tomcat-10.1.19. 100%[===========================>] 12.13M 1.14MB/s in 13s
2024-02-26 14:57:19 (986 KB/s) - ‘apache-tomcat-10.1.19.tar.gz’ saved [12718453/12718453]
解压部署
[root@node1 ~]# ls
anaconda-ks.cfg apache-tomcat-10.1.19.tar.gz
[root@node1 ~]# tar xf apache-tomcat-10.1.19.tar.gz -C /usr/local/
[root@node1 ~]# cd /usr/local/
[root@node1 local]# ls
apache-tomcat-10.1.19 bin etc games include lib lib64 libexec sbin share src
[root@node1 local]# ln -s /usr/local/apache-tomcat-10.1.19 /usr/local/tomcat
[root@node1 local]# ll
total 4
drwxr-xr-x. 9 root root 4096 Feb 26 14:59 apache-tomcat-10.1.19
drwxr-xr-x. 2 root root 6 May 16 2022 bin
drwxr-xr-x. 2 root root 6 May 16 2022 etc
drwxr-xr-x. 2 root root 6 May 16 2022 games
drwxr-xr-x. 2 root root 6 May 16 2022 include
drwxr-xr-x. 2 root root 6 May 16 2022 lib
drwxr-xr-x. 3 root root 17 Dec 12 19:26 lib64
drwxr-xr-x. 2 root root 6 May 16 2022 libexec
drwxr-xr-x. 2 root root 6 May 16 2022 sbin
drwxr-xr-x. 5 root root 49 Dec 12 19:26 share
drwxr-xr-x. 2 root root 6 May 16 2022 src
lrwxrwxrwx. 1 root root 32 Feb 26 15:00 tomcat -> /usr/local/apache-tomcat-10.1.19
启动tomcat
[root@node1 ~]# ls /usr/local/tomcat/
bin conf lib logs README.md RUNNING.txt webapps
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
[root@node1 ~]# ls /usr/local/tomcat/bin
bootstrap.jar configtest.bat migrate.sh tomcat-native.tar.gz
catalina.bat configtest.sh setclasspath.bat tool-wrapper.bat
catalina.sh daemon.sh setclasspath.sh tool-wrapper.sh
catalina-tasks.xml digest.bat shutdown.bat version.bat
ciphers.bat digest.sh shutdown.sh version.sh
ciphers.sh makebase.bat startup.bat
commons-daemon.jar makebase.sh startup.sh
commons-daemon-native.tar.gz migrate.bat tomcat-juli.jar
[root@node1 ~]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
停止tomcat
[root@node1 ~]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
在浏览器访问
写一个hello world的java页面
[root@node1 ~]# cd /usr/local/tomcat/webapps/
[root@node1 webapps]# ls
docs examples host-manager manager ROOT
[root@node1 webapps]# mkdir test
[root@node1 webapps]# ls
docs examples host-manager manager ROOT test
[root@node1 webapps]# cd test/
[root@node1 test]# vim index.jsp
[root@node1 test]# cat index.jsp
<html>
<head>
<title>test page</title>
</head>
<body>
<%
out.println("Hello World");
%>
%</body>
%</html>
[root@node1 test]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@node1 test]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
浏览器访问
设置开机自启
[root@node1 ~]# cd /usr/lib/systemd/system
[root@node1 system]# cp sshd.service tomcat10.service
[root@node1 system]# vim tomcat10.service
[root@node1 system]# cat tomcat10.service
[Unit]
Description=tomcat server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/catalina.sh start
ExecStop=/usr/local/tomcat/bin/catalina.sh stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@node1 system]# cd
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl status tomcat10
○ tomcat10.service - tomcat server daemon
Loaded: loaded (/usr/lib/systemd/system/tomcat10.service; disabled; preset: disabled)
Active: inactive (dead)
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
[root@node1 ~]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
[root@node1 ~]# ps -ef|grep tomcat
root 17171 15187 0 15:25 pts/0 00:00:00 grep --color=auto tomcat
[root@node1 ~]# systemctl enable --now tomcat10
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat10.service → /usr/lib/systemd/system/tomcat10.service.
[root@node1 ~]# systemctl status tomcat10
● tomcat10.service - tomcat server daemon
Loaded: loaded (/usr/lib/systemd/system/tomcat10.service; enabled; preset: disabled)
Active: active (running) since Mon 2024-02-26 15:26:24 CST; 19s ago
Process: 17196 ExecStart=/usr/local/tomcat/bin/catalina.sh start (code=exited, status=>
Main PID: 17208 (java)
Tasks: 34 (limit: 22879)
Memory: 98.5M
CPU: 4.591s
CGroup: /system.slice/tomcat10.service
└─17208 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/>
Feb 26 15:26:24 node1 systemd[1]: Starting tomcat server daemon...
Feb 26 15:26:24 node1 catalina.sh[17196]: Tomcat started.
Feb 26 15:26:24 node1 systemd[1]: Started tomcat server daemon.
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
[root@node1 ~]# ps -ef|grep tomcat
root 17208 1 13 15:26 ? 00:00:04 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 17247 15187 0 15:26 pts/0 00:00:00 grep --color=auto tomcat
安装httpd
去apache官网下载和安装apr和apr-util以及httpd
[root@cjy ~]# wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
[root@cjy ~]# wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
[root@cjy ~]# wget https://downloads.apache.org/httpd/httpd-2.4.58.tar.gz
创建apache服务的用户和组
[root@cjy ~]# useradd -r -M -s /sbin/nologin apache
安装依赖包
[root@cjy ~]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make
解压安装包
[root@cjy ~]# ls
anaconda-ks.cfg apr-1.7.4.tar.gz apr-util-1.6.3.tar.gz httpd-2.4.58.tar.gz
[root@cjy ~]# tar xf apr-1.7.4.tar.gz
[root@cjy ~]# tar xf apr-util-1.6.3.tar.gz
[root@cjy ~]# tar xf httpd-2.4.58.tar.gz
[root@cjy ~]# ls
anaconda-ks.cfg apr-1.7.4.tar.gz apr-util-1.6.3.tar.gz httpd-2.4.58.tar.gz
apr-1.7.4 apr-util-1.6.3 httpd-2.4.58
[root@cjy ~]# cd apr-1.7.4
[root@cjy apr-1.7.4]# ls
apr-config.in build.conf dso libapr.rc NOTICE support
apr.dep buildconf emacs-mode LICENSE NWGNUmakefile tables
apr.dsp build-outputs.mk encoding locks passwd test
apr.dsw CHANGES file_io Makefile.in poll threadproc
apr.mak CMakeLists.txt helpers Makefile.win random time
apr.pc.in config.layout include memory README tools
apr.spec configure libapr.dep misc README.cmake user
atomic configure.in libapr.dsp mmap shmem
build docs libapr.mak network_io strings
[root@cjy apr-1.7.4]# vim configure
cfgfile="${ofile}T"
trap "$RM \"$cfgfile\"; exit 1" 1 2 15
# $RM "$cfgfile" //将此行加上注释,或者删除此行
[root@cjy apr-1.7.4]# ./configure --prefix=/usr/local/apr
配置过程略...
[root@cjy apr-1.7.4]# make && make install
编译安装过程略...
[root@cjy apr-1.7.4]# cd ../apr-util-1.6.3
[root@cjy apr-util-1.6.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
配置过程略...
[root@cjy apr-util-1.6.3]# make && make install
编译安装过程略...
编译安装httpd
[root@cjy apr-util-1.6.3]# cd ../httpd-2.4.58
[root@cjy httpd-2.4.58]# ls
ABOUT_APACHE CHANGES httpd.mak Makefile.in ROADMAP
acinclude.m4 changes-entries httpd.spec Makefile.win server
Apache-apr2.dsw CMakeLists.txt include modules srclib
Apache.dsw config.layout INSTALL NOTICE support
apache_probes.d configure InstallBin.dsp NWGNUmakefile test
ap.d configure.in LAYOUT os VERSIONING
build docs libhttpd.dep README
BuildAll.dsp emacs-style libhttpd.dsp README.CHANGES
BuildBin.dsp httpd.dep libhttpd.mak README.cmake
buildconf httpd.dsp LICENSE README.platforms
[root@cjy httpd-2.4.58]# ./configure --prefix=/usr/local/apache \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
[root@cjy httpd-2.4.38]# make && make install
编译安装过程略...
安装后配置
[root@cjy ~]# ls /usr/local/apache/
bin build cgi-bin conf error htdocs icons include logs man manual modules
[root@cjy ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@cjy ~]# ln -s /usr/local/apache/include /usr/include/apache
[root@cjy ~]# vim /etc/man_db.conf
增加这条内容
MANDATORY_MANPATH /usr/local/apache/man
[root@cjy ~]# source /etc/profile.d/httpd.sh
[root@cjy ~]# vim /usr/local/apache/conf/httpd.conf
取消下面ServerName这行前面的注释
ServerName www.example.com:80
关闭防火墙启动apache
[root@cjy ~]# systemctl disable --now firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@cjy ~]# setenforce 0
[root@cjy ~]# vim /etc/selinux/config
将enforcing改成disabled
[root@cjy ~]# apachectl start
[root@cjy ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 511 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
发现可以访问了
再设置开机自启
[root@cjy ~]# cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/httpd.service
[root@cjy ~]# vim /usr/lib/systemd/system/httpd.service
[root@cjy ~]# cat /usr/lib/systemd/system/httpd.service
[Unit]
Description=httpd server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/apache/bin/apachectl start
ExecStop=/usr/local/apache/bin/apachectl stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@cjy ~]# systemctl daemon-reload
[root@cjy ~]# systemctl status httpd
○ httpd.service - httpd server daemon
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)
Active: inactive (dead)
[root@cjy ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@cjy ~]# systemctl status httpd
○ httpd.service - httpd server daemon
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
Active: inactive (dead) since Mon 2023-12-11 15:39:01 CST; 11s ago
Process: 62554 ExecStart=/usr/local/apache/bin/apachectl start (code=exited, status=0/>
Process: 62557 ExecStop=/usr/local/apache/bin/apachectl stop (code=exited, status=0/SU>
CPU: 21ms
安装mysql
先去官网下载mariadb-devel
[root@cjy ~]# yum -y install https://mirror.stream.centos.org/9-stream/CRB/x86_64/os/Packages/mariadb-devel-10.5.16-2.el9.x86_64.rpm
安装依赖包
[root@cjy ~]# yum -y install ncurses-devel openssl-devel openssl cmake
创建用户和组
[root@cjy ~]# useradd -r -M -s /sbin/nologin mysql
去官网下载二进制格式的mysql软件包
[root@cjy ~]# wget https://downloads.mysql.com/archives/get/file/mysql-8.0.35-linux-glibc2.28-x86_64.tar
[root@cjy ~]# ls
anaconda-ks.cfg apr-util-1.6.3 httpd-2.4.58.tar.gz
apr-1.7.4 apr-util-1.6.3.tar.gz mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz
apr-1.7.4.tar.gz httpd-2.4.58
解压软件至/usr/local/
[root@cjy ~]# ls
anaconda-ks.cfg apr-util-1.6.3 httpd-2.4.58.tar.gz
apr-1.7.4 apr-util-1.6.3.tar.gz mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz
apr-1.7.4.tar.gz httpd-2.4.58
[root@cjy ~]# tar xf mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz -C /usr/local/
[root@cjy ~]# cd /usr/local/
[root@cjy local]# ls
apache apr-util etc include lib64 mysql-8.0.35-linux-glibc2.28-x86_64 share
apr bin games lib libexec sbin src
[root@cjy local]# mv mysql-8.0.35-linux-glibc2.28-x86_64 mysql
[root@cjy local]# ls
apache apr-util etc include lib64 mysql share
apr bin games lib libexec sbin src
修改目录/usr/local/mysql的属主属组
[root@cjy local]# chown -R mysql.mysql mysql
[root@cjy local]# ll
total 0
drwxr-xr-x. 14 root root 164 Dec 11 14:58 apache
drwxr-xr-x. 6 root root 58 Dec 11 14:40 apr
drwxr-xr-x. 5 root root 43 Dec 11 14:48 apr-util
drwxr-xr-x. 2 root root 6 May 16 2022 bin
drwxr-xr-x. 2 root root 6 May 16 2022 etc
drwxr-xr-x. 2 root root 6 May 16 2022 games
drwxr-xr-x. 2 root root 6 May 16 2022 include
drwxr-xr-x. 2 root root 6 May 16 2022 lib
drwxr-xr-x. 3 root root 17 Dec 4 15:58 lib64
drwxr-xr-x. 2 root root 6 May 16 2022 libexec
drwxr-xr-x. 9 mysql mysql 129 Dec 11 15:52 mysql
drwxr-xr-x. 2 root root 6 May 16 2022 sbin
drwxr-xr-x. 5 root root 49 Dec 4 15:58 share
drwxr-xr-x. 2 root root 6 May 16 2022 src
添加环境变量
[root@cjy ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@cjy ~]# source /etc/profile.d/mysql.sh
建立数据存放目录
[root@cjy ~]# mkdir /opt/data
[root@cjy ~]# chown -R mysql.mysql /opt/data
初始化数据库
[root@cjy ~]# mysqld --initialize --user mysql --datadir /opt/data
2023-12-11T07:59:19.785768Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.35) initializing of server in progress as process 67519
2023-12-11T07:59:19.799194Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-12-11T07:59:20.176444Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-12-11T07:59:22.428386Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: PF9:7yt,7u3-
[root@cjy ~]# echo 'PF9:7yt,7u3-' > pass
[root@cjy ~]# ls
anaconda-ks.cfg apr-util-1.6.3 httpd-2.4.58.tar.gz
apr-1.7.4 apr-util-1.6.3.tar.gz mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz
apr-1.7.4.tar.gz httpd-2.4.58 pass
配置mysql,生成配置文件
[root@cjy ~]# vim /etc/my.cnf
[root@cjy ~]# cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
[client-server]
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
root@cjy ~]# ls /usr/local/mysql/
bin docs include lib LICENSE man README share support-files
[root@cjy ~]# ln -s /usr/local/mysql/include /usr/include/mysql
[root@cjy ~]# vim /etc/ld.so.conf.d/mysql.conf
[root@cjy ~]# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@cjy ~]# vim /etc/man_db.conf
将下行内容加入
MANDATORY_MANPATH /usr/local/mysql/man
配置服务启动脚本
[root@cjy ~]# ls /usr/local/mysql/support-files/
mysqld_multi.server mysql-log-rotate mysql.server
[root@cjy ~]# vim /usr/local/mysql/support-files/mysql.server
在basedir和datadir后面填写路径
basedir=/usr/local/mysql
datadir=/opt/data
启动mysql
[root@cjy ~]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL.Logging to '/opt/data/cjy.err'.
SUCCESS!
[root@cjy ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 511 *:80 *:*
LISTEN 0 70 *:33060 *:*
LISTEN 0 151 *:3306 *:*
设置开机自启
[root@cjy ~]# cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/mysqld.service
[root@cjy ~]# vim /usr/lib/systemd/system/mysqld.service
[root@cjy ~]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysqld server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@cjy ~]# systemctl daemon-reload
[root@cjy ~]# systemctl status mysqld
○ mysqld.service - mysqld server daemon
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; preset: disabled)
Active: inactive (dead)
[root@cjy ~]# systemctl enable --now mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
[root@cjy ~]# systemctl status mysqld
× mysqld.service - mysqld server daemon
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)
Active: failed (Result: exit-code) since Mon 2023-12-11 16:22:02 CST; 6s ago
Duration: 191ms
Process: 67906 ExecStart=/usr/local/mysql/support-files/mysql.server start (code=exite>
Main PID: 67919 (code=exited, status=1/FAILURE)
CPU: 198ms
Dec 11 16:22:01 cjy systemd[1]: Starting mysqld server daemon...
Dec 11 16:22:01 cjy mysql.server[67906]: Starting MySQL SUCCESS!
Dec 11 16:22:01 cjy systemd[1]: Started mysqld server daemon.
Dec 11 16:22:02 cjy mysql.server[67919]: 2023-12-11T08:22:02.005090Z mysqld_safe A mysqld >
Dec 11 16:22:02 cjy systemd[1]: mysqld.service: Main process exited, code=exited, status=1>
Dec 11 16:22:02 cjy systemd[1]: mysqld.service: Failed with result 'exit-code'.
使用临时密码登录,修改密码
[root@cjy ~]# cat pass
PF9:7yt,7u3-
[root@cjy ~]# mysql -uroot -p'PF9:7yt,7u3-'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.35
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> alter user root@'localhost' identified with mysql_native_password by 'Passw0rd@_';
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
[root@cjy ~]# mysql -uroot -pPassw0rd@_
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.35 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
Bye
lnmt的搭建
nginx的安装
安装编译工具
[root@localhost ~]# yum -y install gcc gcc-c++ make wget
下载包
[root@localhost ~]# wget https://nginx.org/download/nginx-1.24.0.tar.gz
--2024-01-15 15:17:26-- https://nginx.org/download/nginx-1.24.0.tar.gz
Resolving nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172
Connecting to nginx.org (nginx.org)|52.58.199.22|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1112471 (1.1M) [application/octet-stream]
Saving to: ‘nginx-1.24.0.tar.gz’
nginx-1.24.0.tar.gz 100%[===========================>] 1.06M 15.7KB/s in 2m 37s
2024-01-15 15:20:05 (6.90 KB/s) - ‘nginx-1.24.0.tar.gz’ saved [1112471/1112471]
创建系统用户nginx
[root@localhost ~]# useradd -r -M -s /sbin/nologin nginx
安装依赖环境
[root@localhost ~]# yum -y install pcre-devel openssl openssl-devel gd-devel
创建日志存放目录
[root@localhost ~]# mkdir -p /var/log/nginx
[root@localhost ~]# chown -R nginx.nginx /var/log/nginx
编译安装
[root@localhost ~]# ls
anaconda-ks.cfg nginx-1.24.0.tar.gz
[root@localhost ~]# tar xf nginx-1.24.0.tar.gz
[root@localhost ~]# cd nginx-1.24.0
[root@localhost nginx-1.24.0]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
[root@localhost nginx-1.24.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-debug \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log
..........................................
Configuration summary
+ using system PCRE2 library
+ using system OpenSSL library
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
[root@localhost nginx-1.24.0]# make
[root@localhost nginx-1.24.0]# make install
nginx安装后配置
配置环境变量
[root@localhost ~]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@localhost ~]# source /etc/profile.d/nginx.sh
[root@localhost ~]# which nginx
/usr/local/nginx/sbin/nginx
启动nginx
[root@localhost ~]# nginx
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
停止用nginx -s stop
[root@localhost ~]# nginx -s stop
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
设置一个开机自启
[root@localhost ~]# cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/nginx.service
[root@localhost ~]# vim /usr/lib/systemd/system/nginx.service
[root@localhost ~]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable --now nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@localhost ~]# systemctl status nginx
● nginx.service - nginx server daemon
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
Active: active (running) since Mon 2024-01-15 15:40:29 CST; 15s ago
Process: 38531 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
Main PID: 38532 (nginx)
Tasks: 2 (limit: 22879)
Memory: 2.3M
CPU: 9ms
CGroup: /system.slice/nginx.service
├─38532 "nginx: master process /usr/local/nginx/sbin/nginx"
└─38533 "nginx: worker process"
Jan 15 15:40:29 localhost.localdomain systemd[1]: Starting nginx server daemon...
Jan 15 15:40:29 localhost.localdomain systemd[1]: Started nginx server daemon.
mysql
先去官网下载mariadb-devel
[root@cjy ~]# yum -y install https://mirror.stream.centos.org/9-stream/CRB/x86_64/os/Packages/mariadb-devel-10.5.16-2.el9.x86_64.rpm
安装依赖包
[root@cjy ~]# yum -y install ncurses-devel openssl-devel openssl cmake
创建用户和组
[root@cjy ~]# useradd -r -M -s /sbin/nologin mysql
去官网下载二进制格式的mysql软件包
[root@cjy ~]# wget https://downloads.mysql.com/archives/get/file/mysql-8.0.35-linux-glibc2.28-x86_64.tar
[root@cjy ~]# ls
anaconda-ks.cfg apr-util-1.6.3 httpd-2.4.58.tar.gz
apr-1.7.4 apr-util-1.6.3.tar.gz mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz
apr-1.7.4.tar.gz httpd-2.4.58
解压软件至/usr/local/
[root@cjy ~]# ls
anaconda-ks.cfg apr-util-1.6.3 httpd-2.4.58.tar.gz
apr-1.7.4 apr-util-1.6.3.tar.gz mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz
apr-1.7.4.tar.gz httpd-2.4.58
[root@cjy ~]# tar xf mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz -C /usr/local/
[root@cjy ~]# cd /usr/local/
[root@cjy local]# ls
apache apr-util etc include lib64 mysql-8.0.35-linux-glibc2.28-x86_64 share
apr bin games lib libexec sbin src
[root@cjy local]# mv mysql-8.0.35-linux-glibc2.28-x86_64 mysql
[root@cjy local]# ls
apache apr-util etc include lib64 mysql share
apr bin games lib libexec sbin src
修改目录/usr/local/mysql的属主属组
[root@cjy local]# chown -R mysql.mysql mysql
[root@cjy local]# ll
total 0
drwxr-xr-x. 14 root root 164 Dec 11 14:58 apache
drwxr-xr-x. 6 root root 58 Dec 11 14:40 apr
drwxr-xr-x. 5 root root 43 Dec 11 14:48 apr-util
drwxr-xr-x. 2 root root 6 May 16 2022 bin
drwxr-xr-x. 2 root root 6 May 16 2022 etc
drwxr-xr-x. 2 root root 6 May 16 2022 games
drwxr-xr-x. 2 root root 6 May 16 2022 include
drwxr-xr-x. 2 root root 6 May 16 2022 lib
drwxr-xr-x. 3 root root 17 Dec 4 15:58 lib64
drwxr-xr-x. 2 root root 6 May 16 2022 libexec
drwxr-xr-x. 9 mysql mysql 129 Dec 11 15:52 mysql
drwxr-xr-x. 2 root root 6 May 16 2022 sbin
drwxr-xr-x. 5 root root 49 Dec 4 15:58 share
drwxr-xr-x. 2 root root 6 May 16 2022 src
添加环境变量
[root@cjy ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@cjy ~]# source /etc/profile.d/mysql.sh
建立数据存放目录
[root@cjy ~]# mkdir /opt/data
[root@cjy ~]# chown -R mysql.mysql /opt/data
初始化数据库
[root@cjy ~]# mysqld --initialize --user mysql --datadir /opt/data
2024-1-15T05:59:19.785768Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.35) initializing of server in progress as process 67519
2024-1-15T05:59:19.799194Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-1-15T05:59:20.176444Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-1-15T05:59:22.428386Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: PF9:7yt,7u3-
[root@cjy ~]# echo 'PF9:7yt,7u3-' > pass
[root@cjy ~]# ls
anaconda-ks.cfg apr-util-1.6.3 httpd-2.4.58.tar.gz
apr-1.7.4 apr-util-1.6.3.tar.gz mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz
apr-1.7.4.tar.gz httpd-2.4.58 pass
配置mysql,生成配置文件
[root@cjy ~]# vim /etc/my.cnf
[root@cjy ~]# cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
[client-server]
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
root@cjy ~]# ls /usr/local/mysql/
bin docs include lib LICENSE man README share support-files
[root@cjy ~]# ln -s /usr/local/mysql/include /usr/include/mysql
[root@cjy ~]# vim /etc/ld.so.conf.d/mysql.conf
[root@cjy ~]# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@cjy ~]# vim /etc/man_db.conf
将下行内容加入
MANDATORY_MANPATH /usr/local/mysql/man
配置服务启动脚本
[root@cjy ~]# ls /usr/local/mysql/support-files/
mysqld_multi.server mysql-log-rotate mysql.server
[root@cjy ~]# vim /usr/local/mysql/support-files/mysql.server
在basedir和datadir后面填写路径
basedir=/usr/local/mysql
datadir=/opt/data
启动mysql
[root@cjy ~]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL.Logging to '/opt/data/cjy.err'.
SUCCESS!
[root@cjy ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 511 *:80 *:*
LISTEN 0 70 *:33060 *:*
LISTEN 0 151 *:3306 *:*
设置开机自启
[root@cjy ~]# cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/mysqld.service
[root@cjy ~]# vim /usr/lib/systemd/system/mysqld.service
[root@cjy ~]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysqld server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@cjy ~]# systemctl daemon-reload
[root@cjy ~]# systemctl status mysqld
○ mysqld.service - mysqld server daemon
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; preset: disabled)
Active: inactive (dead)
[root@cjy ~]# systemctl enable --now mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
[root@cjy ~]# systemctl status mysqld
× mysqld.service - mysqld server daemon
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)
Active: failed (Result: exit-code) since Mon 2024-1-15 18:10:29 CST; 6s ago
Duration: 191ms
Process: 67906 ExecStart=/usr/local/mysql/support-files/mysql.server start (code=exite>
Main PID: 67919 (code=exited, status=1/FAILURE)
CPU: 198ms
Jan 15 18:10:29 cjy systemd[1]: Starting mysqld server daemon...
Jan 15 18:10:29 cjy mysql.server[67906]: Starting MySQL SUCCESS!
Jan 15 18:10:29 cjy systemd[1]: Started mysqld server daemon.
Jan 15 18:10:29 cjy mysql.server[67919]: 2024-1-15T018:20:29.005090Z mysqld_safe A mysqld >
Jan 15 18:10:29 cjy systemd[1]: mysqld.service: Main process exited, code=exited, status=1>
Jan 15 18:10:29 cjy systemd[1]: mysqld.service: Failed with result 'exit-code'.
使用临时密码登录,修改密码
[root@cjy ~]# cat pass
PF9:7yt,7u3-
[root@cjy ~]# mysql -uroot -p'PF9:7yt,7u3-'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.35
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> alter user root@'localhost' identified with mysql_native_password by 'Passw0rd@_';
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
[root@cjy ~]# mysql -uroot -pPassw0rd@_
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.35 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
Bye
部署tomcot
java环境安装
安装jdk环境
[root@node1 ~]# yum -y install java-11-openjdk*
查看安装的版本
[root@node1 ~]# java -version
openjdk version "11.0.22" 2024-01-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.22.0.7-1) (build 11.0.22+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.22.0.7-1) (build 11.0.22+7-LTS, mixed mode, sharing)
上官网下载tomcat
[root@node1 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.19/bin/apache-tomcat-10.1.19.tar.gz
--2024-02-26 14:57:05-- https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.19/bin/apache-tomcat-10.1.19.tar.gz
Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12718453 (12M) [application/x-gzip]
Saving to: ‘apache-tomcat-10.1.19.tar.gz’
apache-tomcat-10.1.19. 100%[===========================>] 12.13M 1.14MB/s in 13s
2024-02-26 14:57:19 (986 KB/s) - ‘apache-tomcat-10.1.19.tar.gz’ saved [12718453/12718453]
解压部署
[root@node1 ~]# ls
anaconda-ks.cfg apache-tomcat-10.1.19.tar.gz
[root@node1 ~]# tar xf apache-tomcat-10.1.19.tar.gz -C /usr/local/
[root@node1 ~]# cd /usr/local/
[root@node1 local]# ls
apache-tomcat-10.1.19 bin etc games include lib lib64 libexec sbin share src
[root@node1 local]# ln -s /usr/local/apache-tomcat-10.1.19 /usr/local/tomcat
[root@node1 local]# ll
total 4
drwxr-xr-x. 9 root root 4096 Feb 26 14:59 apache-tomcat-10.1.19
drwxr-xr-x. 2 root root 6 May 16 2022 bin
drwxr-xr-x. 2 root root 6 May 16 2022 etc
drwxr-xr-x. 2 root root 6 May 16 2022 games
drwxr-xr-x. 2 root root 6 May 16 2022 include
drwxr-xr-x. 2 root root 6 May 16 2022 lib
drwxr-xr-x. 3 root root 17 Dec 12 19:26 lib64
drwxr-xr-x. 2 root root 6 May 16 2022 libexec
drwxr-xr-x. 2 root root 6 May 16 2022 sbin
drwxr-xr-x. 5 root root 49 Dec 12 19:26 share
drwxr-xr-x. 2 root root 6 May 16 2022 src
lrwxrwxrwx. 1 root root 32 Feb 26 15:00 tomcat -> /usr/local/apache-tomcat-10.1.19
启动tomcat
[root@node1 ~]# ls /usr/local/tomcat/
bin conf lib logs README.md RUNNING.txt webapps
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
[root@node1 ~]# ls /usr/local/tomcat/bin
bootstrap.jar configtest.bat migrate.sh tomcat-native.tar.gz
catalina.bat configtest.sh setclasspath.bat tool-wrapper.bat
catalina.sh daemon.sh setclasspath.sh tool-wrapper.sh
catalina-tasks.xml digest.bat shutdown.bat version.bat
ciphers.bat digest.sh shutdown.sh version.sh
ciphers.sh makebase.bat startup.bat
commons-daemon.jar makebase.sh startup.sh
commons-daemon-native.tar.gz migrate.bat tomcat-juli.jar
[root@node1 ~]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
停止tomcat
[root@node1 ~]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
更改tomcat端口号
[root@node2 ~]# cd /usr/local/tomcat/conf/
[root@node2 conf]# vim server.xml
......
<Connector port="8081" protocol="HTTP/1.1" 更改端口号为8081
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
......
[root@node2 conf]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@node2 conf]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@node2 conf]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 70 *:33060 *:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 151 *:3306 *:*
LISTEN 0 100 *:8081 *:*
LISTEN 0 128 [::]:22 [::]:*
在浏览器访问
写一个hello world的java页面
[root@node1 ~]# cd /usr/local/tomcat/webapps/
[root@node1 webapps]# ls
docs examples host-manager manager ROOT
[root@node1 webapps]# mkdir test
[root@node1 webapps]# ls
docs examples host-manager manager ROOT test
[root@node1 webapps]# cd test/
[root@node1 test]# vim index.jsp
[root@node1 test]# cat index.jsp
<html>
<head>
<title>test page</title>
</head>
<body>
<%
out.println("Hello World");
%>
%</body>
%</html>
[root@node1 test]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@node1 test]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8081 *:*
浏览器访问
设置开机自启
[root@node1 ~]# cd /usr/lib/systemd/system
[root@node1 system]# cp sshd.service tomcat10.service
[root@node1 system]# vim tomcat10.service
[root@node1 system]# cat tomcat10.service
[Unit]
Description=tomcat server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/catalina.sh start
ExecStop=/usr/local/tomcat/bin/catalina.sh stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@node1 system]# cd
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl status tomcat10
○ tomcat10.service - tomcat server daemon
Loaded: loaded (/usr/lib/systemd/system/tomcat10.service; disabled; preset: disabled)
Active: inactive (dead)
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8081 *:*
[root@node1 ~]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
[root@node1 ~]# ps -ef|grep tomcat
root 17171 15187 0 15:25 pts/0 00:00:00 grep --color=auto tomcat
[root@node1 ~]# systemctl enable --now tomcat10
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat10.service → /usr/lib/systemd/system/tomcat10.service.
[root@node1 ~]# systemctl status tomcat10
● tomcat10.service - tomcat server daemon
Loaded: loaded (/usr/lib/systemd/system/tomcat10.service; enabled; preset: disabled)
Active: active (running) since Mon 2024-02-26 15:26:24 CST; 19s ago
Process: 17196 ExecStart=/usr/local/tomcat/bin/catalina.sh start (code=exited, status=>
Main PID: 17208 (java)
Tasks: 34 (limit: 22879)
Memory: 98.5M
CPU: 4.591s
CGroup: /system.slice/tomcat10.service
└─17208 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/>
Feb 26 15:26:24 node1 systemd[1]: Starting tomcat server daemon...
Feb 26 15:26:24 node1 catalina.sh[17196]: Tomcat started.
Feb 26 15:26:24 node1 systemd[1]: Started tomcat server daemon.
[root@node1 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
[root@node1 ~]# ps -ef|grep tomcat
root 17208 1 13 15:26 ? 00:00:04 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 17247 15187 0 15:26 pts/0 00:00:00 grep --color=auto tomcat
再去第一台机配置nginx负载均衡
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# ls
fastcgi.conf koi-utf nginx.conf uwsgi_params
fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default
fastcgi_params mime.types scgi_params win-utf
fastcgi_params.default mime.types.default scgi_params.default
[root@localhost conf]# vim nginx.conf
#gzip on;
upstream webs {
server 192.168.159.147:8080;
server 192.168.159.139:8081;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://webs;
}
重启服务
[root@localhost ~]# systemctl restart nginx
浏览器去访问成功达到负载均衡的效果
(因为这里两个都是用的默认的测试页面所以负载均衡显示的内容一致)