Linux 学习笔记 6 搭建nginx 实现二级域名访问
程序猿小码 人气:0前言
在前一节的内容里面,我们学习了如何使用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
找到其对应的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.dhttps://img.qb5200.com/download-x/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 仓库 https:/https://img.qb5200.com/download-x/developer.aliyun.com/packageSearch?word=nginx
加载全部内容