前言
在前一节的内容里面, 我们学习了如何使用 yum 包管理工具来安装我们需要的软件, 这节内容, 通过搭建 Nginx 反向代理服务器, 以及学习服务的配置等内容.
NGINX
Nginx 是一款轻量级的 web 服务器 / 反向代理服务器及电子邮件 (IMAP/POP3) 代理服务器, 在 BSD-like 协议下发行. 其特点是占有内存少, 并发能力强, 事实上 nginx 的并发能力在同类型的网页服务器中表现较好.
后端用的最多的地方就是: 反向代理, 那何谓反向代理, 何谓正向代理呢?
反向代理
反向代理代理的是服务器
就好比当前这幅图的情况下, 用户的浏览器访问域名为 http://abc.com 其实这个域名下存在两个子域名的服务, blog.abc.com 可以用来做博客服务, 而 file.abc.com 可以用来做测试文件服务, 用于保存上传的文件, 这里我们单单用了一个 Nginx 即可实现一个域名下多个二级域名的访问形式.
正向代理
正向代理代理的是用户端
简单的了解一下正向代理, 其实在对外的过程中, 我们需要用一个正向代理的服务器来隐藏访问者本身, 这就代理了用户的客户端, 对于最终的服务器而言, 它只知道一个总的服务器来访问它, 不知道这个服务器下面的客户端, 和我们搭梯子挂 VP* 其实是一个道理.
安装 Nginx 服务器
在当前源下面, Nginx 的安装包只有一个, 这不满足我们的需求, 我们需要去官网找寻对应的 RPM 包, 手动加入其依赖项.
NGinx package https://nginx.org/packages/
找到其对应的 CentOS 版本, 我们选择 CentOS 后选择 7 版本, 因为我们安装的就是 Centos7, 而后就会遇到选择如下的内容, 就会比较懵逼, 这咋选?
RPM 内容介绍
上面学习的内容涉及到 RPM 包管理的内容. 这里做一个简单的了解和学习. 比如 Windows 大家都知道 Windows 的安装包都是 EXE 结尾的可执行文件. 那 Linux 也有自己的安装包软件. 这里首先从 Linux 的包管理类型入手:
源码包
源码包, 字面意思就是开发人员写完的代码包, 不能直接运行, 因为电脑是不认识编程语言的, 需要将编程语言编译成电脑认识的二进制才可以运行. 所以源码包需要编译后才可进行安装使用. 新手不建议使用这个.
二进制包
二进制包就是源码包进行编译后的内容. 可以拿过来直接使用. 我们需要的就是这个包, 二进制包大多使用 tar.gz 格式进行解压后可以直接使用.
RPM 包统一命名格式
当我们查看一款 RPM 包的时候, 免不了感觉一大堆的东西, 很不易了解. 我就拿一个例子来说明:
在阿里云等仓库搜索这个包的时候, 在名称上出现很多的字符
这里的包名称: pcp-pmda-nginx
3.10.9 软件包版本号
el6 发行版本号, 就意思是编译 (发布) 了 6 个版本
i686 以上平台架构
这里引用参考: http://c.biancheng.net/view/2868.html
至于自己的电脑版本如何查看, 请用
uname -a
学习到了以上知识, 我知道其实我们已经可以选择自己需要的包了.
RPM 包安装升级
一般我们通过下载后得到 RPM 的安装包, 就可以进行安装了. 一般在 Linux 里面不需要指定软件的安装路径, 其都是统一规划好的, 我们只需要知道我们的配置文件在哪儿以及软件的执行目录, 搭配 whereis xxx 命令进行查询, 就可以了.
/usr/bin 命令目录
/usr/lib/ 相关库的位置
/etc/ 配置文件放置
/usr/share/man/ 帮助文件位置
RPM 包安装
对于 RPM 包的安装, 一定要是包全名, 就是必须是有名称, 版本号, 发行版, 等等
rpm -ivh nginx16-nginx-1.6.2-3.el6.x86_64.rpm
选项 i (install)安装
v 详细显示信息
h 打印内容
RPM 包升级(常用)
rpm -Uvh nginx16-nginx-1.6.2-3.el6.x86_64.rpm
U U 选项表示没有安装过这个包则直接安装, 安装过则直接升级至最新版本.
开始安装 RPM 包
首选从官网复制链接后下载, 或者下载后上传到服务器, 都是一样的, 按照个人习惯.
- curl -O http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm
- rpm -Uvh nginx-1.10.0-1.el7.ngx.x86_64.rpm
- # 启动 nginx
- systemctl start nginx.service
- # 开机启动
- systemctl enable nginx.service
- # 查看端口运行情况
- netstat -nltp
若这里没有 netstat 命令, 请搜索安装 yum install.NET-tools.x86_64
外部访问尝试
这时候我们的 Linux 是部署在虚拟机上的, 通过桥接的方式访问. 关闭防火墙, 不然访问不到.
- # 关闭防火墙服务
- systemctl stop firewalld.service
- # 永久停止防火墙
- systemctl disable firewalld.service
配置 Nginx
配置 NGinx 可真的是一门功课. 此时我们的服务器已经可以正常启动了. 我们需要配置才可以玩起来. 首先就学习配置一个二级域名来使用. 这里我们用的是本机虚拟机进行访问的, 我们修改 host 文件的方式让我们的虚拟机拥有一个域名. 假设这个域名就是 http://abc.com
192.168.0.120 abc.com
新建配置文件
nginx 的配置文件我们可以通过 service 查看到其位置. 因为这个是默认的配置文件, 我们一般不做修改, 而是再 / conf.d / 下新建一个. conf 后缀的文件在进行修改并配置我们的逻辑.
- # 复制一个默认的配置文件进行修改
- cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/mynginx.conf
- # 修改配置文件
- vi /etc/nginx/conf.d/mynginx.conf
- server {
- listen 80;
- server_name blog.abc.com;
- location / {
- proxy_pass http://127.0.0.1:8080;
- }
- ### 省略其他
- }
server_name 修改为我们的二级域名 xxx.abc.com;
proxy_pass 的地址就是我们要反向代理的地址.
测试效果
这里因为转发了一个 8090 的端口, 我们可以将上一个节内容的 tomcat 进行修改端口后启动起来充当这个服务器.
- # 检查配置文件
- nginx -t
- # 重载配置信息
- nginx -s reload
启动 tomcat
- # 进入 tomcat 目录
- cd /root/apache-tomcat-8.5.50/bin/
- # 启动 tomcat
- ./startup.sh
小结
学到这里呢, 我们已经学会了在 nginx 上如何使用 tomct 的启动, 以及学会使用 RPM 安装包进行软件的安装, 以及学会简单的二级域名的配置. 还是学到了很多实用的东西, 非常 nice
下节预告
下一节将学习 service 命令以及 systemctl 与之的配合如何实现服务的启动. 以及服务配置开机启动等.
参考
虚拟机关闭防火墙: https://www.cnblogs.com/aprilwang/p/10954928.html
RPM 安装命令 http://c.biancheng.net/view/2872.html
aliyun 仓库
来源: http://www.bubuko.com/infodetail-3377781.html