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】

清屏

三、ViVim编辑器--文件操作

3.1Vim编辑器:

Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。三种模式:命令行、插入、底行模式。

切换到命令行模式:按Esc键;

切换到插入模式:按 i oa键;

    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种

  1. 二进制发布包

软件已经针对具体平台编译打包发布,只要解压,修改配置即可

      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配置负载均衡-准备工作

  1. 将刚才的存放工程的tomcat复制三份,修改端口分别为8080 ,8081,8082 。
  2. 分别启动这三个tomcat服务。
  3. 为了能够区分是访问哪个服务器的网站,可以在首页标题加上标记以便区分。

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐