Linux环境部署
远程连接工具
在实际开发中,Linux服务器都在其他的地方,我们要通过windows客户端工具远程去连接Linux并操作它,连接Linux的windows客户端工具有很多,企业中常用的有secureCRT、Putty、xshell、SSH Secure等。
我使用secureCRT客户端工具进行连接Linux操作系统,该工具是图形化界面和命令行窗口集一身客户端工具。
Linux软件安装
介绍
Linux上的软件安装有以下常见的几种方式
1. 二进制发布包(相当于压缩包)
软件已经针对具体平台编译打包发布,只要解压,修改配置即可。例如:tomcat
2. RPM包(相当于windows中的exe)
软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装和使用。例如:mysql
命令:
安装:rpm -ivh rpm文件
升级:rpm -Uvh rpm文件
卸载:rpm -e --nodeps 软件名
查看所有安装的软件:rpm -qa
3. Yum在线安装
软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。
4. 源码编译安装(redis,nginx)
软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。
获取安装资源
方式1:我们可以先下载到windows上,然后通过上传下载工具实现和linux的互通(CRT上自带put命令就可以将一些文件上传到linux下.或者使用其他工具例如:FX)
方式2:我们可以通过 wget 网址
直接下载到linux服务器上
方式3:yum 在线安装
1.jdk安装
注意:
centos其他版本中有可能已经安装了一款jdk,我们安装之前需要先查询有无jdk,若有的话且不是我们想要的jdk需要先卸载再安装
rpm -qa | grep java
rpm -qa | grep jdk
rpm -e --nodeps 查询出来的软件包 <—— (卸载)
大概步骤:
下载 包
安装
配置环境变量
详细步骤:
1. 把jdk从windows上传到linux下,通过crt工具来操作 按下 alt+p 可以拖着软件上传到root目录下
2. 在usr/local下新建一个目录java
mkdir /usr/local/java
3. 解压jdk到 /usr/local/java
tar -xvf /root/jdk... -C /usr/local/java
4. 配置环境变量 /etc/profile,在文件末尾加上以下两行代码
#export JAVA_HOME=JDK的安装目录,不要到bin下
#export PATH=$JAVA_HOME/bin:$PATH
#编辑/etc/profile
vi /etc/profile
#在文件末尾加上以下两行代码,定位到文件末尾 G,然后按下o,另起一个空行
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
#保存退出
5. 可以重启电脑,也可以重新加载配置文件
source /etc/profile
6. 测试是否安装成功
java -version
2.tomcat安装
大概步骤:
下载到windows系统,上传到linux系统上
解压,启动
测试
详细步骤
1. 上传到linux系统上
2. 在usr/local新建一个tomcat目录,将tomcat解压此目录下
mkdir /usr/local/tomcat
mv apache-tomcat... /usr/local/tomcat
tar -xvf apache-tomcat...
3. 启动tomcat,在bin目录下有startup.sh,进入bin目录,运行命令
sh startup.sh
4. 放行防火墙的8080端口号
firewall-cmd --zone=public --add-port=8080/tcp --permanent
5. 重启防火墙
systemctl restart firewalld
注意:开放Linux的对外访问的端口8080
在centos7中内置的防火墙为firewall;在centos6中内置的iptables
终止tomcat:
方式1: sh shutdown.sh
方式2: 可以通过kill -9 杀死
3.mysql安装
步骤:
1.下载,上传
2.使用rpm安装服务器端
3.使用rpm安装客户端
4.测试使用(用windows上的小海豚)
详细步骤:
1. 上传mysql文件到linux下
2. 查询linux服务器上是否有mysql或者maria,centos7自带了mariadb,需要先卸载mariadb;centos6中自带mysql
rpm -qa | grep maria
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
3. 创建一个/usr/local/mysql目录,将mysql系列文件移动到mysql目录下,然后解压
mkdir /usr/local/mysql
mv /root/My.... /usr/local/mysql
tar -xvf My...
4. 安装若干依赖(否则安装server端会报错)
# libaio.so.1
# libc.so.6
# libgcc_s.so.1(这个版本有冲突,需要先卸载再安装)
# libstdc++.so.6(这个版本有冲突,需要先卸载在安装)
yum install libaio.so.1 libc.so.6
# 查询且卸载libgcc_s.so.1 libstdc++.so.6
rpm -qa | grep libgcc
rpm -e --nodeps libgcc-4.8.5-36.el7_6.2.x86_64
rpm -qa | grep libstdc
rpm -e --nodeps libstdc++-4.8.5-16.el7.x86_64
# 安装依赖
yum install libgcc_s.so.1 libstdc++.so.6
5. 先安装服务器端
rpm -ivh Mysql-server....
# 等客户端安装成功,然后启动mysql服务器之后,我们需要给服务器的root用户设置一个密码,
# /usr/bin/mysqladmin -u root password '****'
6. 安装客户端之前,需要安装客户端的依赖 libncurses.so.5
yum install libncurses.so.5
7. 安装客户端
rpm -ivh Mysql-client....
8. 先查看mysql是否启动,若没有启动再启动mysql,给root设置密码了
service mysql status
# service mysql start #启动mysql
# 启动成功后设置密码
/usr/bin/mysqladmin -u root password '1234'
9. 使用linux系统登录mysql服务器
10. 处理中文乱码
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
vi /etc/my.cnf
# 搜索mysqld 可以在命令行模式下 /mysqld 回车
# 在mysqld下添加 character-set-server=utf8
# 保存退出
# 重新mysql服务器
service mysql restart
11. 使用windows的小海豚远程登录mysql服务器,需要先放行3306端口号.然后开通远程权限.
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld
12. 开启mysql的远程登录权限
# 默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启远程登录mysql的权限
# 登录mysql后输入如下命令:
grant all privileges on *.* to 'root'@'%' identified by '1234';
flush privileges;
可以拍摄快照备份一下
4.redis安装
详细步骤:
1. 上传
2. 创建/usr/local/redis目录,然后解压到此目录
mkdir /usr/local/redis
mv /root/redis... /usr/local/redis
cd /usr/local/redis
tar -xvf redis...
3. 安装gcc-c++ 依赖
yum install gcc-c++
4. 编译redis
cd /usr/local/redis/redis-3.0.7
make
5. 安装redis,成功之后就会多出来一个bin目录,有服务器端和客户端
make PREFIX=/usr/local/redis install
6. 在redis的bin目录下启动服务器端
# 启动方式1:前台启动,占用当前的工作窗口,这种方式不推荐
./redis-server
# 启动方式2:推荐后台启动
# a.复制配置文件redis.conf到bin目录下,修改配置文件为后台启动
cp /usr/local/redis/redis.../redis.conf /usr/local/redis/bin
vi /usr/local/redis/bin/redis.conf
# b.将 daemonize no 改成 daemonize yes #使用/daemonize搜索
# c.启动服务器指定配置文件 现在的配置文件和服务器端在一个目录下
./redis-server redis.conf
7. 使用客户端连接服务器端测试
./redis-cli [-h 数据库的ip地址] [-p 端口号]
8. 使用客户端将redis关闭
#方式1: 登录redis后发送shutdown
#方式2: 不登陆 ./redis-cli shutdown
9. 若需要外界访问redis,放行6379
firewall-cmd --zone=public --add-port=6379/tcp --permanent
systemctl restart firewalld
5.项目发布
备份还原数据库
将war包部署到tomcat上
- 通过maven的package命令打包
- 将war放入linux下的/usr/local/tomcat/ap…/webapps 目录下
- 保证 mysql和redis可以访问
Nginx
简介
Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。
Nginx官网地址:http://nginx.org/
Nginx 应用场景
1、http 服务器。Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器。
2、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
Linux安装Nginx
1. 直接在linux上下载或者先下载到windows然后在上传到linux上
# 联网下载的命令
# wget http://nginx.org/download/nginx-1.16.0.tar.gz
2. 创建/usr/local/nginx目录,然后解压到此目录
mkdir /usr/local/nginx
mv /root/nginx... /usr/local/nginx
cd /usr/local/nginx
tar -xvf nginx...
3. 安装依赖 gcc-c++(redis已安装过,可以忽略)
yum install gcc-c++
4. 安装其他依赖(正则、压缩函数库、安全通信)
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
5. 进入解压目录,编译安装
cd /usr/local/nginx/nginx-1.16.0
# 编译并安装
./configure --prefix=/usr/local/nginx
make
make install
# 安装成功之后,会多出了几个目录,其中有一个sbin目录.
6. 进入nginx的sbin目录启动nginx
./nginx
7. 停止和重启
# ./nginx -s stop
# ./nginx -s reload
8. 放行80端口号
firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld
nginx.conf配置文件介绍
nginx/conf/nginx-conf
server {
listen 80; #监听的端口为 80 (默认端口)
server_name localhost; #虚拟主机的域名为 localhost(默认域名)
location / { #当访问路径为"/"的时候的配置
root html; #访问的目录为nginx下的html目录
index index.html index.htm; #默认首页为 html/index.html 或者 html/index.htm
}
....
}
简单的说就是若我们访问的 主机ip:80的时候 就会访问nginx目录下的html下的index.html或者index.htm
反向代理
反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
首先我们先理解正向代理,如下图:
正向代理是针对你的客户端,而反向代理是针对服务器的,如下图:
正向代理中,proxy和client同属一个局域网(Local Area Network,LAN),对server透明;
反向代理中,proxy和server同属一个局域网(Local Area Network,LAN),对client透明;
实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把后出现
的那种代理方式叫反向代理。
配置反向代理
可以通过SecureCRTPortable软件将linux服务器上的nginx.conf文件下载到本地然后进行修改,再放回linux服务器。
配置内容:
#upstream 服务器名 (名字随便取)
upstream tomcat_llz{
#本地的也可以写为 server localhost
server 192.168.xxx.yyy:8080;
}
server {
listen 80; # 监听的端口
server_name localhost; # 域名或ip
location / { # 访问路径配置
# root index;# 根目录
proxy_pass http://tomcat_llz;
index index.html index.htm; # 默认首页
}
}
#进入/nginx/sbin目录下,在crt控制台输入 ./nginx -s reload重启nginx然后重新登录访问
./nginx -s reload
Nginx负载均衡
负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
配置负载均衡
upstream tomcat_llz{
server 192.168.xxx.yyy:8080 weight=2;# weight是权重
server 192.168.xxx.yyy:8081 weight=1;
}
server {
listen 80; # 监听的端口
server_name localhost; # 域名或ip
location / { # 访问路径配置
# root index;# 根目录
proxy_pass http://tomcat_llz;
index index.html index.htm; # 默认首页
}
}
扩展:常用的负载均衡策略:
轮询和权重的方式目前存在session没有共享的问题
- 解决session共享问题
- 方案1:使用tomcat广播session
- 方式2:使用session分离技术
如使用ip_hash的方式,没有session共享的问题,请求来的时候,根据ip地址进行hash运算得出一个值,根据这个值去选择使用那个tomcat服务器.