Linux(二)
VMware虚拟机开机显示:键盘挂钩超时值未设置为VMware workstation建议的值。一、Linux的目录结构:管理员用户在root目录下,其他普通用户在home目录下,很多其他软件是安装在user目录中。/:表示根目录这个目录结构在 Linux系统中点击计算机-->文件系统-->在这里就可以看到Linux目录结构。[root@itcast01 ~]#前面是用户名(root)
VMware虚拟机开机显示:键盘挂钩超时值未设置为VMware workstation建议的值。
一、Linux的目录结构:
管理员用户在root目录下,其他普通用户在home目录下,很多其他软件是安装在user目录中。
/:表示根目录
这个目录结构在 Linux系统中点击计算机-->文件系统-->在这里就可以看到Linux目录结构。
[root@itcast01 ~]# 前面是用户名(root) 后面是主机名(itcast01)
~是是表示根目录下的root目录
~代表当前用户的路径。如果你的用户名是abc,那么 ~/ 代表的路径 是 /home/abc/
Linux世界中,常常看到波浪号,去表示用户根目录
二、Linux的常用命令
2.1列出文件列表:ls ll--都是目录相关的命令
ls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。 格式:ls[参数] [路径或文件名]
ls常用选项:
在linux中以 . 开头的文件都是隐藏的文件
* ls
* ls -a 显示所有文件或目录(包含隐藏的文件)
* ls -l 缩写成ll
2.2切换目录命令cd:
使用cd app 切换到app目录
cd .. 切换到上一层目录
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目录
使用tab键来补全文件路径,比如输入 cd Doc +tab键就可以补全了
2.3创建目录和移除目录:mkdir rmdir
2.4浏览/查看文件
【cat、more、less】
cat命令是用来查看文件所有内容的。
more命令只显示屏幕的上这一段文件的内容(也就是这一页的内容)。按回车显示下一行,按空格键显示下一个屏幕的内容(一屏一屏的显示)。按q键就可以退出(ctrl+c也可以退出的)。按上下键就可以翻页,也就是你可以看到之前输入的命令。
空格显示下一页数据, 回车显示下一行的数据。
less命令和more命令很类似,空格显示下一页数据, 回车显示下一行的数据。按上下键可以滚动着看(滚轮)。按q键就可以退出(ctrl+c也可以退出的)。
tail命令只会查看最后10行文件的内容,常用于查看日志文件
tail -10 install.log 查看后10行数据
tail -f install.log 动态查看日志(*****),我们看到光标一直在闪没有结束掉,要想结束的话按ctrl+c
我们看到光标一直在闪没有结束掉。
克隆会话就是把这个窗口复制一个新的出来。我们就可以对当前的tomcat进行启动或者关闭掉,这样就可以影响日志的变化了。
2.5文件操作--文件拷贝、删除
【cp、mv】
cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
cp a.txt b.txt è 将a.txt复制为b.txt文件
cp a.txt ../ è 将a.txt文件复制到上一层目录中
mv 移动或者重命名
mv a.txt ../ è 将a.txt文件移动到上一层目录中
mv a.txt b.txt è 将a.txt文件重命名为b.txt
【rm】
rm 删除文件
用法:rm [选项]... 文件...
rm a.txt è 删除a.txt文件
删除需要用户确认,y/nrm 删除不询问
rm -f a.txt è 不询问,直接删除rm 删除目录
rm -r a è 递归删除不询问递归删除(慎用)
rm -rf a è 不询问递归删除
rm -rf * è 删除所有文件
rm -rf /* è 自杀
是是表示根目录下的root目录
cp是拷贝,也可以给拷贝的时候起名字
mv是移动,移动可选择相对路径(..开头的)和绝对路径(/开头的)
rm是删除,不加参数只能删除文件,加上参数才能删除目录,-r要询问是否删除,-rf不需要询问直接删除
rm -rf /* 表示删除root目录所有,自杀式的。
rm -rf / 删的更彻底,从根目录全部删除
2.6文件操作--压缩、解压缩
【tar】命令:(***** 打包或解压)
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
打包:
tar –cvf xxx.tar ./*
打包并且压缩:
tar –zcvf xxx.tar.gz ./*
解压
tar –xvf xxx.tar
tar -zxvf xxx.tar.gz -C /usr/aaa
tar是打包或解压缩的,最初的意思是打包成一个文件,但不做压缩。但是加上参数的话就会增加其功能。
如果打包是一个没有压缩的,用-cvf,如果打包.gz的且压缩的,就用-zcvf,在Linux系统中压缩的后缀名是.tar.gz的。windows系统中后缀名是.zip的。我们可以把压缩包传到tomcat服务器上,然后压缩就可以用了。
解压到前目录中直接用-xvf,如果解压到指定的目录中,就要用参数大写的C,后面接上目录即可。
2.7文件操作--查找文件、内容
【find】命令
find指令用于查找符合条件的文件
示例:
find / -name “ins*” 查找文件名称是以ins开头的文件
find / -name “ins*” –ls
find / –user itcast –ls 查找用户itcast的文件
find / –user itcast –type d –ls 查找用户itcast的目录
find /-perm -777 –type d-ls 查找权限是777的文件
【grep】命令
查找文件里符合条件的字符串。
用法: grep [选项]... PATTERN [FILE]...示例:
grep lang anaconda-ks.cfg 在文件中查找lang
grep lang anaconda-ks.cfg –color 高亮显示
find命令是查找文件所在的位置的。如果你是用来查看某个文件开头的,就需要用上星号*
grep命令是查找文件内容字符串的。搜索这个字符串在哪个文件中,比如address这个字符串在哪个tomcat目录下。对搜索的内容高亮显示就要用到--color,如果是显示后一行就用-A1(a是after的简写),如果是往前显示一行-B1(b是before的简写)
2.8其他常用命令
【pwd】
显示当前所在目录
【touch】
创建一个空文件
* touch a.txt
【clear/ crtl + L】
清屏
三、Vi和Vim编辑器--文件操作
3.1Vim编辑器:
在Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。三种模式:命令行、插入、底行模式。
切换到命令行模式:按Esc键;
切换到插入模式:按 i 、o、a键;
i 在当前位置前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
切换到底行模式:按 :(冒号);更多详细用法,查询文档《Vim命令合集.docx》和《vi使用方法详细介绍.docx》
打开文件:vim file
退出:esc à :q
修改文件:输入i进入插入模式
保存并退出:escà:wq
不保存退出:escà:q!
三种进入插入模式:
i:在当前的光标所在处插入
o:在当前光标所在的行的下一行插入
a:在光标所在的下一个字符插入
快捷键:
dd – 快速删除一行
yy - 复制当前行
nyy - 从当前行向后复制几行
p - 粘贴
R – 替换
vim编辑器相当于windows系统上的记事本,vim是vi的升级版本,功能更加强大。
命令行模式不能写东西,要想写东西的话切换到插入模式(i),写完东西之后要去保存,保存的话需要切换到命令行模式(esc),然后再切换到底行模式(:),然后再进去保存。数据修改之后想保存的命令是:wq
我们想再次进去进行添加需要按冒号进入插入模式,我们添加完数据之后不想保存了,我们按esc键进入命令行模式,在按着冒号进入底行模式,数据修改之后不想保存的命令是:q!
vim编辑器不仅可以编辑已经存在的文件,还可以编辑没有存在的文件,我们这里只有bb.txt文件,没有cc.txt文件,vim创造新的文件去编辑数据比较小,大部分去用来修改配置文件。
vi没有高亮显示,vim又高亮显示,你想要更改tomcat的端口号,你可以先要按:/8080搜索一下,就可以找到8080端口,然后按i就可以添加了,然后就是保存并退出,按esc,按:wq
3.2重定向输出>和>>
> 重定向输出,覆盖原有内容;>> 重定向输出,又追加功能;示例:
cat /etc/passwd > a.txt 将输出定向到a.txt中
cat /etc/passwd >> a.txt 输出并且追加
ifconfig > ifconfig.txt
想要吧这个文件里的内容放到另外一个文件里,用到>大于号,如果在执行同样的操作(吧这个文件里的内容放到另外一个文件里),则就是覆盖。如果是追加的话就要用到2个大于号了(>>)。
简单来说一个大于号是覆盖,2个大于号是追加。
3.3系统管理命令
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
ps是查看进程的,kill是杀死进程的。查看某一个进程用 | grep ash。
强制删除用-9。
3.4管道|
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。示例
ls --help | more 分页查询帮助信息
ps –ef | grep java 查询名称中包含java的进程
ifconfig | more
cat index.html | more
ps –ef | grep aio
管道就是竖线前面的命令输出作为后面的命令输入。
四、Linux的权限命令
4.1文件权限
权限是由10个字符串组成,它分为4组(1,3,3,3这4组)。每一组代表啥意思,使用chomd命令可以修改文件权限,里面有三个参数(r,w,x),或者用数字(r/4,w/2,x/1)也行。
我们看到tomcat的bin目录下绿色是可执行的,白色是文件,红色是压缩文件。
r:对文件是指可读取内容 对目录是可以ls
w:对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件)
x:对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录
4.2Linux三种文件类型
普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
设备文件: Linux系统把每一个设备都看成是一个文件
4.3文件类型标识
普通文件(-)目录(d)符号链接(l)
* 进入etc可以查看,相当于快捷方式字符设备文件(c)块设备文件(s)套接字(s)命名管道(p)
4.4文件权限管理
chmod 变更文件或目录的权限。
chmod 755 a.txt
chmod u=rwx,g=rx,o=rx a.txt
五、Linux上常用网络操作
5.1主机名配置
hostname 查看主机名
hostname xxx 修改主机名 重启后无效
如果想要永久生效,可以修改/etc/sysconfig/network文件
查看主机名hostname,修改主机名hostname XXX(修改后的名字),这个修改只是一次性的,要想永久生效,我们需要修改配置文件,在/etc/sysconfig/network目录下修改。按下i进入插入模式,写完东西之后要去保存,按下esc +:+ wq 进行保存一下。
当我们修改主机名的时候,发现主机名没有变,是因为这个会话还没有刷新,克隆一下会话即可看到。
解决ip地址发生变化有2种方式,第一种是开始安装的时候就把网络给配置好,第二种就是手动的修改ip地址,也有2种方式,一种是ifconfig eth0 192.168.12.22这种事临时的,还有一种是永久的,就是通过修改配置文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0。按下i进入插入模式,修改2个地方再加上4个地方的,写完东西之后要去保存,按下esc +:+ wq 进行保存一下。
一般修改了ip地址,会马上生效,如果没有立即生效,就重启一下网络服务,看到ok就好了,然后重新建立一个连接.
5.2ip地址配置
ifconfig 查看(修改)ip地址(重启后无效)
ifconfig eth0 192.168.12.22 修改ip地址
如果想要永久生效
修改 /etc/sysconfig/network-scripts/ifcfg-eth0文件
DEVICE=eth0 #网卡名称
BOOTPROTO=static #获取ip的方式(static/dhcp/bootp/none)
HWADDR=00:0C:29:B5:B2:69 #MAC地址
IPADDR=12.168.177.129 #IP地址
NETMASK=255.255.255.0 #子网掩码
NETWORK=192.168.177.0 #网络地址
BROADCAST=192.168.0.255 #广播地址
NBOOT=yes # 系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备。
5.3域名映射
/etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用,相当于windows系统的C:\Windows\System32\drivers\etc\hosts文件的功能
Linux下的域名映射,相当于C:\Windows\System32\drivers\etc\hosts文件,host文件是一个本地域名解析文件,可以配置ip和域名的对应关系。
直接对vim/etc/hosts文件进行编辑,然后按下i进入插入模式,写完东西之后要去保存,按下esc +:+ wq 进行保存一下。
5.4网络服务管理
service network status 查看指定服务的状态
service network stop 停止指定服务
service network start 启动指定服务
service network restart 重启指定服务
service --status–all 查看系统中所有后台服务
netstat –nltp 查看系统中网络进程的端口监听情况
防火墙设置
防火墙根据配置文件/etc/sysconfig/iptables来控制本机的”出”、”入”网络访问行为。
service iptables status 查看防火墙状态
service iptables stop 关闭防火墙
service iptables start 启动防火墙
chkconfig iptables off 禁止防火墙自启
我们可以看到网卡的一些命令,service network 啥的。还有查看所有服务的状态,还有就是查看系统中网络警察的端口监听情况。
还有防火墙命令iptables。
六、Linux上软件安装
1.Linux上的软件安装方式--4种
- 二进制发布包
软件已经针对具体平台编译打包发布,只要解压,修改配置即可
2.RPM包
软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装
3.Yum在线安装
软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题
4.源码编译安装
软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。
2.常见的上传和下载工具--3种
1.FileZilla
FileZilla是绿色版的,解压后就可以直接使用。
本地站点是windows系统下的,远程站点是Linux系统下的。想传文件直接拖就行。 本地站点上面是文件夹,下面是文件。我们会把软件安装到/user/local目录的。如果吧远程服务的下载下来也是直接拖就行。
2.lrzsz
我们可以使用yum安装方式安装 yum install lrzsz
注意:必须有网络
可以在crt中设置上传与下载目录
我们安装之前,先去拼一下网络是否是连接的。比如ping baidu.com我们发现连接不了,是因为我们吧ip设置成静态ip了,我们要把它改成动态的,按下i进入插入模式,写完东西之后要去保存,按下esc +:+ wq 进行保存一下。然后再去ping一下,用ctrl+c关闭该任务。
用yum方式去安装 lrzsz,安装完成之后他会有提示,y是按照,n是不需要安装。安装完成之后需要设置上传和下载的目录。
在secureCRT选项-->会话选项中的X/Y/Zmodem,设置lrzsz的上传和下载的目录。
上传用rz,下载用sz。输入rz命令,会打开 lrzsz图形化界面,先把文件拖入到upload文件夹上,输入rz命令,会打开 lrzsz图形化界面。
3.sftp
使用alt + p组合键打开sftp窗口
上传是put命令,比如上传redis,用 put h://res 就可以上传redis了,这里看到有2个,我们选择后缀zip格式的。100%我们就知道上传完了。上传的目录是在哪里了,上传到当前目录所操作的目录中。当前是root用户,就传在root目录中。
下载是用get命令,比如下载redis。从root/redis目录下载,下载到电脑的文档的目录中。
6.1在Linux上安装jdk
【步骤一】:上传JDK到Linux的服务器.
* 上传JDK
* 卸载open-JDK
java –version
rpm -qa | grep java
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.i686
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.i686
【步骤二】:在Linux服务器上安装JDK.
* 通常将软件安装到/usr/local
* 直接解压就可以
tar –xvf jdk.tar.gz -C 目标路径
【步骤三】:配置JDK的环境变量.
配置环境变量:
① vi /etc/profile
② 在末尾行添加
#set java environment
JAVA_HOME=/usr/local/jdk/jdk1.7.0_71
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出
③source /etc/profile 使更改的配置立即生效
【步骤二】:在Linux服务器上安装JDK.
我们先要查看Linux系统是32还是64位的,然后选择相应的jdk版本,我们使用sftp的put命令上传,上传完之后在ll中进行查看,jdk安装到/user/local目录下的jdk目录,我们先把jdk移动到/user/local/jdk中。
在安装jdk之前,Linux系统自带jdk的,我们要先把它卸载掉,查看我们发现是open-jdk,一个是1.6的一个是1.7的,我们要把它卸载掉。再去安装jdk。
安装之前可以先清屏一下,然后再去解压,解压完之后再去查看一下,然后去配置jdk的环境变量,我们先鼠标到最下面,然后按下i进入插入模式,我们需要改的就是jdk-home目录,其他的都不用动,写完东西之后要去保存,按下esc +:+ wq 进行保存一下。在配置的时候先要检查一下jdk-home目录是否正确的。因为这个窗口正在编辑,我们可以克隆会话,我们在另外一个窗口复制jdk-home目录路径。
最后需要用source命令去重新加载一下jdk文件。最后再去查看一下,安装的jdk版本是我们上传上去的版本。
6.2在Linux上安装mysql
在local目录下创建mysql文件夹,然后使用rz方式上传mysql软件,在之前就把mysql软件放到upload文件夹上。
我们在安装mysql之前,要卸载掉Linux系统上自带的数据库。然后对mysql数据库进行解压,你上传的数据库是tar后缀的,用tar -xvf进行解压,解压后的都是rpm文件。
查看rpm文件,我们只看serve服务器端的和client客户端的,客户端需要去连接服务器端的,所以先安装服务器端的。
安装完之后,我们需要回头看一下,下面的提示是告诉我们root用户的密码第一次是随机生成的,它保存在/root/.mysql_secret中,第一次登录需要修改root密码,我们要去查看/root/.mysql_secret,把随机的密码记住即可。
然后我们去登陆,发现登录不上去,原因是mysql的服务器没有启动,吧mysql服务器启动,我们发现进入到mysql里面去了。
然后我们随便输入mysql的命令,又报错了,你第一次访问的时候必须要重新设置密码,因为刚才的密码是随机生成的,通过set命令去设置,再去访问,我们还是连接不上的,需要吧mysql远程访问的权限打开。再次用sqlyog连接的时候,如果连接不上,就需要吧防火墙关闭掉。
6.3在Linux上安装tomcat
安装tomcat很简单,直接上传解压就可以启动运行了。我们吧tomcat复制到uploads文件夹上。
这是mysql目录,我们要后退到local目录,然后创建一个tomcat目录。
用rz软件进行上传tomcat,上传完之后进行解压。然后进入到bin目录下,然后进行启动tomcat,然后访问地址即可。
6.4在Linux上安装redis
tomcat是c语言开发的,我们先回到local的目录下,用yum方式安装gcc-c++,输入y确认下载,再次输入y确认安装,安装gcc成功。这样gcc的环境安装好了。
通过wget命令去下载redis的安装包,然后去解压redis,进入到redis里面,用make进行编译,都是一大堆c语言文件,编译完之后,就进行安装make insatll,也可以安装的时候指定目录make prefix install。然后返回到redis目录,在进入bin目录中。进入bin目录之后,我们关心的是redis-cli和redis-server,redis-server是用来启动redis,redis-cli是用来访问redis,启动完之后我们会有一些配置信息,我们一般通过配置文件启动server,所以我们需要返回到local目录下,需要进入到redis.config的配置文件中,吧redis.config配置文件复制到bin目录下,然后进入到bin目录中,可以先查看一下配置文件,
redis-server启动的时候后面要跟上redis.config配置文件。
我们在之前复制的会话窗口使用redis-cli是用来访问redis。它要进入到bin目录下去访问它。然后通过set方法存值,get方法取值的方式
6.5部署项目到Linux
先要将我们的项目打包成war包,扔到Linux系统对应的tomcat目录即可。打成war包之前,在pom文件里面,我们的Linux系统jdk是1.7版本,所以在pom文件里面jdk的打包环境和编译环境也要改为1.7的,打包完成之后会带着版本号的名称,为了不要带着版本号,我们需要travel.war,我们则需要加上finaName标签。调出右边的maven窗口,依次点击clean和 package。
我们远程连接的数据库没有数据,我们可以sqlyog在本地中吧travel数据库给导出来,然后再sqlyog切回到Linux数据库,吧数据给导入进来或者吧sql文件进行还原。
我们在java的druid.properties指定了连接的数据库,配置文件需要修改一下,需要指定字符集,还有就是webapp上修改header.html和route_detail.html文件,把绝对路径修改为相对路径。因为windows的路径和Linux的路径是不一样的。配置文件修改完以后,我们用package打个war包。
我们吧打包成的war包上传到uploads文件夹上,我们进入到tomcat目录,在进入到webapps目录,然后通过rz吧war包给上传进来。由于我们的tomcat是启动状态的,将来检测到war包会自动的进行解压缩,你想要看日志信息的话,可以克隆会话,通过pwd来查看webapps,我们克隆会话是查看logs目录,然后动态地查看catalina.out这个文件,发现报错了,我们用ll命令查看war包没有解压完成,我们可以进入到bin目录给他重启一下,我们再去看catalina.out这个文件就好了。
我们再去访问这个远程连接的项目。
七、Nginx
7.1Nginx的安装与启动
1.什么是Nginx
Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。
Nginx 应用场景:
1、http 服务器。Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
2.Nginx在Linux下的安装
重新准备一台虚拟机作为服务器。比如IP地址为192.168.177.129
2.1Nginx下载--需要gcc的环境+3个依赖包(4个包)
(1)需要安装 gcc 的环境【此步省略--之前安装过】
//安装gcc yum install gcc-c++
(2)第三方的开发包。
//安装PCRE pcre-devel yum install -y pcre pcre-devel //安装zlib yum install -y zlib zlib-devel //安装Open SSL yum install -y openssl openssl-devel
2.2Nginx下载
官方网站下载 nginx:http://nginx.org/
我们使用的版本是 1.8.0 版本。
2.3Nginx安装
Linux安装使用tar.gz,windows上安装使用zip的,吧它复制到uploads文件夹上,在local目录上查看一下,用rz进行上传,上传之后直接进行解压即可。
进入nginx-1.8.0目录,使用configure命令创建makeFile文件。再输入make,就可以生成很多.c文件,然后通过make install进行安装。
在访问nginx目录之前,我们先要创建一个temp临时目录,因为在config里面我们配置了temp-path临时目录,-p是创建子目录,我们进入到nginx目录下的sbin目录,输入启动nginx的命令,我们就可以访问nginx了,端口号是默认80,不需要写的。
我们可以关掉nginx,有2个命令,-s stop ,这个命令就是杀掉进程,这个是不正常退出,-s quit,这个命令是保存配置在退出,这个就是正常退出。
-s reload就是重新加载配置文件。
7.2Nginx静态网站部署
1.静态网站的部署
静态网站的部署很简单,你只需要把你的静态资源放到一个目录下就可以访问。
你要放到哪?你要怎么访问?
我们进入到conf/的文件,对nginx.conf进行编辑,带#都是注释,里面的内容很多,每次用vim修改的话会很麻烦,我们可以用editPlus,它是可以连接到Linux系统中的文件系统。
1.文件 —>FTP—>设置FTP服务器;
2.添加—>名称—>FTP服务器—>用户名—>密码
3.高级设置—>加密方式sftp—>端口号22—>utf-8要勾选—>确定,后面一路都是确定就行。
4.找到刚刚命名ftp服务器名称,并找到local/nginx/conf文件,吧带#的注释文件都删掉,删除掉保存后会有弹框,单击确定即可,还弹出一个是否上传到服务器里面去,单击ok即可
当再次用vim查看 nginx.conf,发现已经修改好了。
使用EditPlus的FTP服务向Linux系统上传下载文件:
我们想要把这个文件夹复制到nginx的目录,并且把location位置下的root目录改为index即可。在nginx目录下有三个目录,我们可以直接把index目录拖过来,然后单击upload,就可以上传过来了。
上传完之后,吧nginx进行重启。我们看到配置有问题,可以解决掉,再去重启。然后再去访问。
2. 配置虚拟主机
配置虚拟主机就是在同一个nginx中部署多个项目,也就是多个server节点,就是端口号和ip不同即可。
2.1 端口绑定
我们看一下配置文件里的配置项,server就是服务器端,看一下里面的配置。端口号改完之后,我们要重新加载一下。一个server就是一个网站,可以配置多个server。
一个server节点对应一个ip+端口号,可以称作一个服务。
我们复制一下server,相当于部署2个网站,一个server是81,一个server是82.一个用的index,一个用的是register注册网站。我们先要把 register目录拷贝到nginx的目录下。
修改完之后重新加载一下,81端口访问首页,82端口访问注册页面。
(1)上传静态网站:
将/资料/静态页面/index目录上传至 /usr/local/nginx/index下
将/资料/静态页面/regist目录上传至 /usr/local/nginx/regist下
(2)修改Nginx 的配置文件:/usr/local/nginx/conf/nginx.conf
server {
listen 81; # 监听的端口
server_name localhost; # 域名或ip
location / { # 访问路径配置
root index;# 根目录
index index.html index.htm; # 默认首页
}
error_page 500 502 503 504 /50x.html; # 错误页面
location = /50x.html {
root html;
}
}
server {
listen 82; # 监听的端口
server_name localhost; # 域名或ip
location / { # 访问路径配置
root regist;# 根目录
index regist.html; # 默认首页
}
error_page 500 502 503 504 /50x.html; # 错误页面
location = /50x.html {
root html;
}
}
(3)访问测试:
地址栏输入http://192.168.177.129/:81 可以看到首页面
地址栏输入http://192.168.177.129/:82 可以看到注册页面
2.2域名绑定
域名就是ip的对应关系,我们访问就是输入ip地址+端口号,ip太难记,固有域名的出现。域名有顶级域名,二级域名,三级域名等等。
一个域名对应一个 ip 地址,一个 ip 地址可以被多个域名绑定。我们没有买公网域名,因此我们需要改host文件,我们需要配置一下域名和端口号的关系即可。我们可以通过不同的域名访问不同的站内资源。
所谓虚拟主机就是配置多个server节点,使用不同域名或不同端口来访问不同资源,从而达到一台服务器部署多个站点的效果。
我们吧端口号都改为80,一个server_name改为www.hmtravel.com,还有一个server_name改为regist.hmtravel.com。
什么是域名:
域名(Domain Name),是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。域名作为力所能及难忘的互联网参与者的名称。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。域名用于各种网络环境和应用程序特定的命名和寻址目的。通常,域名表示互联网协议(IP)资源,例如用于访问因特网的个人计算机,托管网站的服务器计算机,或网站本身或通过因特网传送的任何其他服务。世界上第一个注册的域名是在1985年1月注册的。
域名级别:
(1)顶级域名
顶级域名又分为两类:
一是国家顶级域名(national top-level domainnames,简称nTLDs),200多个国家都按照ISO3166国家代码分配了顶级域名,例如中国是cn,美国是us,日本是jp等;
二是国际顶级域名(international top-level domain names,简称iTDs),例如表示工商企业的 .Com .Top,表示网络提供商的.net,表示非盈利组织的.org,表示教育的.edu,以及没有限制的中性域名如.xyz等。大多数域名争议都发生在com的顶级域名下,因为多数公司上网的目的都是为了赢利。但因为自2014年以来新顶级域名的发展,域名争议案件数量增长幅度越来越大[5] 。为加强域名管理,解决域名资源的紧张,Internet协会、Internet分址机构及世界知识产权组织(WIPO)等国际组织经过广泛协商, 在原来三个国际通用顶级域名:(com)的基础上,新增加了7个国际通用顶级域名:firm(公司企业)、store(销售公司或企业)、Web(突出WWW活动的单位)、arts(突出文化、娱乐活动的单位)、rec (突出消遣、娱乐活动的单位)、info(提供信息服务的单位)、nom(个人),并在世界范围内选择新的注册机构来受理域名注册申请。
例如:baidu.com
(2)二级域名
二级域名是指顶级域名之下的域名,在国际顶级域名下,它是指域名注册人的网上名称,例如 ibm,yahoo,microsoft等;在国家顶级域名下,它是表示注册企业类别的符号,例如.top,com,edu,gov,net等。
中国在国际互联网络信息中心(Inter NIC) 正式注册并运行的顶级域名是CN,这也是中国的一级域名。在顶级域名之下,中国的二级域名又分为类别域名和行政区域名两类。类别域名共7个, 包括用于科研机构的ac;用于工商金融企业的com、top;用于教育机构的edu;用于政府部门的 gov;用于互联网络信息中心和运行中心的net;用于非盈利组织的org。而行政区域名有34个,分别对应于中国各省、自治区和直辖市。
例如:map.baidu.com
(3)三级域名
三级域名用字母( A~Z,a~z,大小写等)、数字(0~9)和连接符(-)组成, 各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。如无特殊原因,建议采用申请人的英文名(或者缩写)或者汉语拼音名 (或者缩写) 作为三级域名,以保持域名的清晰性和简洁性。
例如:
item.map.baidu.com
域名与IP绑定:
一个域名对应一个 ip 地址,一个 ip 地址可以被多个域名绑定。
本地测试可以修改 hosts 文件(C:\Windows\System32\drivers\etc)
可以配置域名和 ip 的映射关系,如果 hosts 文件中配置了域名和 ip 的对应关系,不需要走dns 服务器。
192.168.177.129 www.hmtravel.com
192.168.177.129 regist.hmtravel.com
做好域名指向后,修改nginx配置文件。
server {
listen 80;
server_name www.hmtravel.com;
location / {
root cart;
index cart.html;
}
}
server {
listen 80;
server_name regist.hmtravel.com;
location / {
root search;
index search.html;
}
}
执行以下命令,刷新配置
[root@localhost sbin]# ./nginx -s reload
测试:
地址栏输入http://www.hmtravel.com/
7.3Nginx反向代理与负载均衡
1.反向代理
1.1什么是反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
首先我们先理解正向代理,如下图:
正向代理是针对你的客户端,而反向代理是针对服务器的,如下图
1.2配置反向代理-准备工作
我们先要有一个tomcat被代理了,进入到tomcat目录中,进入到webapps中,这里面有很多资源,我们希望travel项目是root项目。
将travel案例部署到tomcat中的ROOT目录中,我们先要进入到tomcat目录中,看到tomcat下有哪些目录,我们吧当前tomcat目录都给删除了,然后再给项目打包成一个root包,单击maven选项中的install。
吧打包好的root的war包放到uploads文件夹中,使用rz进行上传,吧tomcat进行启动一下。这是直接访问,那如何通过nginx方向代理进行访问了。
(1) 将travel案例部署到tomcat中(ROOT目录),上传到服务器。
(2)启动TOMCAT,输入网址http://192.168.177.129:8080 可以看到网站首页
1.3配置反向代理
不配这个就是通过tomcat访问,配了这个就是通过nginx反向代理了。如果有2个tomcat,那就是负载均衡了。
配置反向代理很简单,就是访问tomcat请求之前,都要经过nginx反向代理.
(1)在Nginx主机修改 Nginx配置文件
upstream tomcat-travel{
server 192.168.177.129:8080;
}
server {
listen 80; # 监听的端口
server_name www.hmtravel.com; # 域名或ip
location / { # 访问路径配置
# root index;# 根目录
proxy_pass http://tomcat-travel;
index index.html index.htm; # 默认首页
}
}
(2)重新启动Nginx 然后用浏览器测试:hmtravel.com (此域名须配置域名指向)
2.负载均衡
tomcat集群如何搭建,我们这里用3个tomcat搭建一个集群。我们要到tomcat目录下,我们吧tomcat复制3份,并把端口号改一改。
我们在nginx的配置文件上,可以看到复制好的3个tomcat目录,吧3个tomcat端口号改一下,第一个端口80,第二个81,第三个82。我们进入第二个tomcat配置文件serve.xml,吧里面所有端口都要改。
然后是吧3个tomcat都给启动来。
启动完成之后,我们想去访问,这个时候跟tomcat没关系了,我们就需要改nginx的配置文件(ngin.conf)即可,还可以加上权重的, 然后刷新一下nginx即可。
2.1什么是负载均衡
负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
2.2配置负载均衡-准备工作
- 将刚才的存放工程的tomcat复制三份,修改端口分别为8080 ,8081,8082 。
- 分别启动这三个tomcat服务。
- 为了能够区分是访问哪个服务器的网站,可以在首页标题加上标记以便区分。
2.3 配置负载均衡
修改 Nginx配置文件:
upstream tomcat-travel {
server 192.168.177.129:8080;
server 192.168.177.129:8081;
server 192.168.177.129:8082;
}
server {
listen 80; # 监听的端口
server_name www.hmtravel.com; # 域名或ip
location / { # 访问路径配置
# root index;# 根目录
proxy_pass http://tomcat-travel;
index index.html index.htm; # 默认首页
}
error_page 500 502 503 504 /50x.html; # 错误页面
location = /50x.html {
root html;
}
}
地址栏输入http:// www.hmtravel.com / 刷新观察每个网页的标题,看是否不同。
经过测试,三台服务器出现的概率各为33.3333333%,交替显示。
如果其中一台服务器性能比较好,想让其承担更多的压力,可以设置权重。
比如想让NO.1出现次数是其它服务器的2倍,则修改配置如下:
upstream tomcat-travel {
server 192.168.177.129:8080;
server 192.168.177.129:8081 weight=2;
server 192.168.177.129:8082;
}
经过测试,每刷新四次,有两次是8081
更多推荐
所有评论(0)