Linux 学习笔记 6 搭建nginx 实现二级域名访问

Linux 学习笔记 6 搭建nginx 实现二级域名访问

前言

在前一节的内容里面,我们学习了如何使用yum 包管理工具来安装我们需要的软件,这节内容,通过搭建Nginx 反向代理服务器,以及学习服务的配置等内容。

NGINX

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

后端用的最多的地方就是:反向代理,那何谓反向代理,何谓正向代理呢?

反向代理

反向代理代理的是服务器

就好比当前这幅图的情况下,用户的浏览器访问域名为http://abc.com 其实这个域名下存在两个子域名的服务,blog.abc.com可以用来做博客服务,而file.abc.com 可以用来做测试文件服务,用于保存上传的文件,这里我们单单用了一个Nginx 即可实现一个域名下多个二级域名的访问形式。

正向代理

正向代理代理的是用户端
image.png

简单的了解一下正向代理,其实在对外的过程中,我们需要用一个正向代理的服务器来隐藏访问者本身,这就代理了用户的客户端,对于最终的服务器而言,它只知道一个总的服务器来访问它,不知道这个服务器下面的客户端,和我们搭梯子挂VP* 其实是一个道理。

安装Nginx 服务器

在当前源下面,Nginx 的安装包只有一个,这不满足我们的需求,我们需要去官网找寻对应的RPM 包,手动加入其依赖项。
NGinx package

image.png
找到其对应的Centos 版本,我们选择Centos 后选择7版本,因为我们安装的就是Centos7,而后就会遇到选择如下的内容,就会比较懵逼,这咋选?
image.png

RPM 内容介绍

上面学习的内容涉及到RPM包管理的内容。这里做一个简单的了解和学习。比如Windows 大家都知道Windows的安装包都是EXE 结尾的可执行文件。那linux 也有自己的安装包软件。这里首先从Linux的包管理类型入手:

源码包

源码包,字面意思就是开发人员写完的代码包,不能直接运行,因为电脑是不认识编程语言的,需要将编程语言编译成电脑认识的二进制才可以运行。所以源码包需要编译后才可进行安装使用。新手不建议使用这个。

二进制包

二进制包就是源码包进行编译后的内容。可以拿过来直接使用。我们需要的就是这个包,二进制包大多使用tar.gz 格式进行解压后可以直接使用。

RPM包统一命名格式

当我们查看一款RPM 包的时候,免不了感觉一大堆的东西,很不易了解。我就拿一个例子来说明:
image.png

在阿里云等仓库搜索这个包的时候,在名称上出现很多的字符

  • 这里的包名称:pcp-pmda-nginx
  • 3.10.9 软件包版本号
  • el6 发行版本号,就意思是编译(发布)了6个版本
  • i686 以上平台架构

image.png
这里引用参考:http://c.biancheng.net/view/2868.html
至于自己的电脑版本如何查看,请用

uname -a

学习到了以上知识,我知道其实我们已经可以选择自己需要的包了。

RPM包安装升级

一般我们通过下载后得到RPM的安装包,就可以进行安装了。一般在Linux 里面不需要指定软件的安装路径,其都是统一规划好的,我们只需要知道我们的配置文件在哪儿以及软件的执行目录,搭配whereis xxx 命令进行查询,就可以了。
image.png

  • /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

image.png

# 启动nginx
systemctl start nginx.service

# 开机启动
systemctl enable nginx.service

# 查看端口运行情况
netstat -nltp

image.png

若这里没有netstat命令,请搜索安装 yum install net-tools.x86_64

外部访问尝试

这时候我们的Linux 是部署在虚拟机上的,通过桥接的方式访问。关闭防火墙,不然访问不到。

# 关闭防火墙服务
systemctl stop firewalld.service

# 永久停止防火墙
systemctl disable firewalld.service

image.png

配置Nginx

配置NGinx 可真的是一门功课。此时我们的服务器已经可以正常启动了。我们需要配置才可以玩起来。首先就学习配置一个二级域名来使用。这里我们用的是本机虚拟机进行访问的,我们修改host文件的方式让我们的虚拟机拥有一个域名。假设这个域名就是http://abc.com

192.168.0.120 abc.com

新建配置文件

nginx 的配置文件我们可以通过service 查看到其位置。因为这个是默认的配置文件,我们一般不做修改,而是再/conf.d/下新建一个.conf后缀的文件在进行修改并配置我们的逻辑。

image.png

# 复制一个默认的配置文件进行修改
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与之的配合如何实现服务的启动。以及服务配置开机启动等。

参考

# nginx  RPM 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×