一.Linux网络
(1)网络服务
查看当前网络的状态,并启动和停止网络服务:
查看ip :
ifconfig
ip addr
修改网卡ip:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
概要信息如下:
DEVICE=ens33 #网卡名称
TYPE=Ethernet #网卡类型 以太网
ONBOOT=yes #是否开机就使用此网卡 在我们安装的时候都已经配置好
BOOTPROTO=dhcp #启动网卡时指定获取IP地址的方式
常用取值:dhcp (自动获取ip地址,网关,子网掩码等信息无需设置)
常用取值:static (静态ip,如需要访问网络,需要自己设置ip地址等信息)
其他取值:none (不指定)
IPADDR=192.168.200.133 #ip地址
GATEWAY=192.168.200.2 #网关
NETMASK=255.255.255.0 #子网掩码
DNS1=8.8.8.8 # Google提供的公用DNS
重启网卡服务:
systemctl status network #查看指定服务的状态
systemctl stop network #停止指定服务
systemctl start network #启动指定服务
systemctl restart network #重启指定服务
(2)防火墙服务:
防火墙类似于一个安全卫士管家,它能对你访问它人电脑,进行拦截并处理,有的阻止,有的放行,有的转发。
防火墙设置:
开启防火墙:
systemctl start firewalld
重启防火墙
systemctl restart firewalld
关闭防火墙
systemctl stop firewalld
设置开机启动
systemctl enable firewalld
停止并关闭开机启动
systemctl disable firewalld
查看防火墙状态
systemctl status firewalld 或者 firewall-cmd --state
查看防火墙开机时是否启动
systemctl list-unit-files | grep firewalld
端口设置:
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent
更新防火墙规则
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
firewall-cmd --zone=public --list-ports
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
常用端口
8080 tomcat
80 http协议
443 https协议
22 ssh远程连接
3306 mysql
6379 redis
二.软件部署设计:反向代理
三.软件安装:
(1)常见的安装方式:
二进制发布包:(绿色免安装)
软件已经针对具体平台编译打包发布开发人员拿到安装包之后只要解压,修改配置即可使用。
RPM安装包:
软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装。
* rpm命令安装
语法: rpm 参数 安装包
参数:
-v 显示指令执行过程
-h 表示显示进度
-q 查询包是否已经安装
-a 查看所有安装的软件
-i 安装软件
-U 更新升级
-e 卸载软件
--nodeps 不验证软件的相互关联性
* 常用命令:
安装:rpm -ivh rpm文件
升级:rpm -Uvh rpm文件
卸载:rpm -e --nodeps 软件名
查看所有安装的软件:rpm -qa | grep 具体名
(2)YUM在线安装:
软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。
yum install 软件名
yum localinstall rpm包 使用yum安装本地rpm包[此过程会自动解决依赖]
(3)源码包
此种安装包软件以源码工程的形式发布,需要程序员自行编译安装
它一般包含四个步骤: 解压------>配置------->编译-------->安装
(4)上传与下载工具:
SecureCRSecureFX工具的安装与使用:
FTP(File Transfer Protocol,文件传输协议)
1. sftp(实现了ssh加密)
使用alt + p 组合键打开sftp窗口
get: 将远程主机(linux)中文件下载到本地主机(windows)
put: 将本地主机(windows)中文件上传到远程主机(linux)
quit: 断开FTP连接
pwd: 查询linux主机所在目录
lpwd: 查询windows主机所在目录
ls: 查询连接到当前linux主机所在目录有哪些文件
lls: 查询当前本地上传目录有哪些文件
lcd: 改变本地上传目录的路径
cd: 改变远程上传目录
2. lrzsz
我们可以使用yum安装方式安装: yum install lrzsz
注意:必须有网络
rz 上传
sz 下载
四. 软件安装:
(1)JDK安装
jdk-8u201-linux-x64版本
1. 查看当前Linux系统是否已经安装java
rpm -qa | grep -i java
rpm -e --nodeps xxxxxx
2. 解压已上传的JDK压缩包,并移动到/usr/local目录下
tar -zxvf /root/jdk-8u201-linux-x64.tar.gz -C/usr/local/
3. 测试jdk
/usr/local/jdk1.8.0_201/bin/java -version
4. 配置环境变量
vim /etc/profile
G 跳转到最后一行
i 进入插入模式
export JAVA_HOME=/usr/local/jdk1.8.0_201
export PATH=$PATH:$JAVA_HOME/bin
esc 进入命令行模式
:wq! 保存
5. 更新环境变量
source /etc/profile
6. 测试
java -version
(2)Tomcat安装:
1. 解压已上传的Tomcat压缩包,到/user/local目录下
tar -zxvf /root/apache-tomcat-8.5.27.tar.gz -C /root
cp -r /root/apache-tomcat-8.5.27 /usr/local/tomcat1
2. 启动tomcat
/usr/local/tomcat1/bin/startup.sh
3. 动态查看日志
tail -f /usr/local/tomcat1/logs/catalina.out
4. 防火墙放行端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
5. 关闭tomcat
/usr/local/tomcat1/bin/shutdown.sh
(3)Nginx安装:
Nginx是什么?
Nginx
是一款轻量级的
Web
服务器
,
由俄罗斯的程序设计师伊戈尔
·
西索夫所开发。
Nginx
性能非常优秀
,
官方测试能够
支撑
5
万并发链接,并且
cpu
、内存等资源消耗却非常低,运行非常稳定。
Nginx的作用有很多,我们经常使用的是用它来做静态资源服务器、负载均衡服务器和反向代理服务器。
应用场景:
静态资源:
可以部署静态资源,
html js css image
反向代理:
代理
:
给某个对象提供一个代理对象,并由代理对象控制原对象的引用
正向代理
:
对客户端进行代理
反向代理:: 对服务端进行代理
反向代理,就是对服务端进行代理,作为客户端
,
只需要将请求发送到反向代理服务器,由反向代理服务器去选择目
标服务器获取数据后,再响应给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务
器地址,隐藏了真实服务器
IP
地址。
负载均衡:
负载均衡
(
Load Balance
)
意思就是将一份负载分摊到多个操作单元上进行执行
1. 安装必须库
yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
2. 解压文件
tar -zxvf /root/nginx-1.13.9.tar.gz -C /root
3. 配置
cd /root/nginx-1.13.9
./configure --prefix=/usr/local/nginx
4. 编译
make
5. 安装
make install
6. 启动
/usr/local/nginx/sbin/nginx
7. 防火墙放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
8. 停止nginx
/usr/local/nginx/sbin/nginx -s stop #停止服务
9. 修改后,执行
/usr/local/nginx/sbin/nginx -s reload #重新加载配置
(4)MySQL安装
1. 查看CentOS是否自带的MySQL环境
rpm -qa | grep -i mysql
rpm -qa | grep -i mariadb
2. 卸载mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
3. 解压文件
mkdir -p /usr/local/mysql
tar -zxvf /root/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C/usr/local/mysql
cd /usr/local/mysql/
4. 安装libaio环境(已经存在不需要)
yum install libaio
5. 安装MySQL(按顺序)
rpm -ivh /usr/local/mysql/mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh /usr/local/mysql/mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh /usr/local/mysql/mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh /usr/local/mysql/mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh /usr/local/mysql/mysql-community-client-5.7.25-1.el7.x86_64.rpm
rpm -ivh /usr/local/mysql/mysql-community-server-5.7.25-1.el7.x86_64.rpm
6. 启动mysql服务
systemctl start mysqld
7. 查看随机生成的密码
grep 'temporary password' /var/log/mysqld.log
8. 修改root用户密码
mysql -u root -p
Enter password:输入刚才查询到的随机密码
>set global validate_password_length=4;
>set global validate_password_policy=LOW;
>set password = password('root');
9. 防火墙放行端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
10. 开启mysql的远程登录权限
mysql -uroot -proot
> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' ;
> FLUSH PRIVILEGES;
> exit;
11. MySQL编码问题(默认安装完毕为 ISO-8859-1)
1. 编辑/etc/my.cnf,在[mysqld]选项下添加字符集的设置
vim /etc/my.cnf
[mysqld]
character-set-server=utf8
2. 重新启动mysql的服务
systemctl restart mysqld
查询初始化密码:
设置mysql创建数据库的编码方式:
连接主机:
(5)Redis安装:
1. 解压文件
tar -zxvf /root/redis-3.0.7.tar.gz -C /root
2. 编译
cd /root/redis-3.0.7
make
3. 安装
make PREFIX=/usr/local/redis install
4. 复制配置文件到/usr/local/redis/bin
cp /root/redis-3.0.7/redis.conf /usr/local/redis/bin/
5. 设置后台启动
vim /usr/local/redis/bin/redis.conf
daemonize yes
6. 启动redis
/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
7. 防火墙放行端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
8. 关闭redis
/usr/local/redis/bin/redis-cli shutdown
五.项目部署:
(1)通过上述软件的安装,进行环境确认:
* 语法
netstat -antup
netstat -antup | grep 端口号
* 参数解释
-antup 查看当前正在使用的udp和tcp协议的端口号和进程号
(2)数据库迁移:
将windows的数据库进行备份:
还原到linux的数据库中:
(3)tomcat项目部署:
打开idea,对maven进行package打包:
然后进入到target目录中,对war包改名:
使用FTP上传到linux服务器:
部署到tomcat中的webapps目录:(把部署项目复制到webapps目录下会自动解压)
然后即可浏览器访问测试了:
(4)nginx配置反向代理:
需要修改nginx.conf 配置文件:
修改完毕后,需要重写加载配置文件
/usr/local/nginx/sbin/nginx -s reload
# 指定你要代理的tomcat服务器列表
upstream tomcat_server {
server localhost:8080;
}
server {
listen 80;
server_name localhost;
location / {
root html;
# 现在我们nginx不在是访问html路径,改成反向代理
proxy_pass http://tomcat_server;
index index.html index.htm;
}
}
反向代理执行流程图:
注意:如果需要对linux的配置文件进行文件编辑,推荐使用notpad++工具:
配置远程liunx环境:
远程连接liunx:
针对配置文件进行修改:
(5)Nginx配置负载均衡:
1. 将当前tomcat1停止运行
/usr/local/tomcat1/bin/shutdown.sh
2. 复制tomcat1为tomcat2
cp -r /usr/local/tomcat1 /usr/local/tomcat2
3. 修改tomcat2的3个端口
vim /usr/local/tomcat2/conf/server.xml
8005-->8015 8009-->8019 8080-->8081
4. 放行8081端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --reload
5. 启动两个tomcat
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/startup.sh
6. 在nginx中配置负载均衡策略
vim /usr/local/nginx/conf/nginx.conf
upstream tomcat_server{
ip_hash;
server localhost:8080 weight=2;
server localhost:8081 weight=1;
}
7. 重新加载nginx配置
/usr/local/nginx/sbin/nginx -s reload
8. 同时开启两个窗口,通过动态查看tomcat日志可见结果
tail -f /usr/local/tomcat1/logs/catalina.out
tail -f /usr/local/tomcat2/logs/catalina.out
问题:
Nginx
与
Tomcat
区别?
1. 存放的文件形式
Nginx是http服务器,只能解析静态文件
Tomcat是web中间件(本质上是一个servlet),能解析jsp和静态文件
2. 用途
nginx可以作为反向代理服务器,负责均衡服务器,静态资源存放服务器
tomcat能作为jsp容器使用,静态资源存放服务器
3. 性能
nginx支持5W+并发,tomcat的并发只能在200-400之间