Linux 学习笔记 6 搭建nginx 实现二级域名访问
前言
在前一节的内容里面,我们学习了如何使用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.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 仓库 https://developer.aliyun.com/packageSearch?word=nginx
Linux 学习笔记 6 搭建nginx 实现二级域名访问的更多相关文章
- 好记性不如烂笔头--linux学习笔记8关于nginx的动静分离
动静分离逻辑梳理 就是给nginx配置访问规则,不同后缀的文件访问不同的目录 worker_processes 1; events { worker_connections 1024; } http ...
- Linux学习笔记-Centos7搭建owncloud私有云盘
使用环境:虚拟机centos7 1.下载安装LAMP相关软件 [root@localhost yum.repos.d]# yum install httpd –y [root@localhost yu ...
- Linux学习笔记:touch新建文件、修改访问、改动时间
touch用于创建新的空文件或者修改已有文件的时间戳. 语法:touch file.txt 如果file存在,使用touch指令可更改这个文件或目录的日期时间,包括存取时间和更改时间. 如果file不 ...
- 在linux 服务器上用.htaccess文件实现二级域名访问子目录
实现子域名绑定网站子目录的方法有很多,比如可以用js跳转,可以用php实现,可以301跳转等,但最常用的应该是RewriteEngine方式了. 新建一个笔记本命名为.htaccess(在wind ...
- Linux学习笔记-Linux系统简介
Linux学习笔记-Linux系统简介 UNIX与Linux发展史 UNIX是父亲,Linux是儿子. UNIX发行版本 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP P ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- Linux~学习笔记目录索引
回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...
- [Linux.NET]Nginx 泛解析配置请求映射到多端口实现二级域名访问
由于想实现一个域名放置多个应用运行的目的,而不想通过域名后加端口号方式处理,这种方式处理记起来太麻烦,偷懒党简直不能忍,故而考虑了使用二级域名来处理多个应用同时运行.Google了一番资料并进行了尝试 ...
- Hadoop学习笔记(4) ——搭建开发环境及编写Hello World
Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...
随机推荐
- Java 简单校验框架
数据校验框架现状 在我们的方法入口后面,难免会有如下样子的代码: result.setSuccess(false); if (StringUtils.isBlank(bizOrder.getThird ...
- HTML--CSS样式表--基本概念(超链接的状态)
样式表的基本概念 一.样式表的分类 1.内联样式表 和HTML联合显示,控制精确,但是可重用性差,冗余较多. 例:<p style="font-size:14px;"> ...
- Python--day46--mysql触发器
触发器:当对某张表做:增删改操作时,可以使用触发器自定义关联行为 1,为什么需要创建mysql触发器? 比如说我往tb1表里面插入一条数据的时候,同时需要往日志表tb2中插入这条数据,这时候就需要创造 ...
- 2019-10-23-WPF-使用-SharpDx-异步渲染
title author date CreateTime categories WPF 使用 SharpDx 异步渲染 lindexi 2019-10-23 21:18:38 +0800 2018-0 ...
- 【codeforces 764C】Timofey and a tree
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- IE显示 “Promise”未定义,vue项目兼容ie的两种方案
第一种方法: 直接在html中加入js链接: <script src = "https://cdn.polyfill.io/v2/polyfill.min.js">&l ...
- 前端css图片固定宽高问题
img需要宽高都固定时,图片往往会因此变形,此时可采用的方法有: 上述代码会使得图片居中,边缘部分不显示.这是在图片大小跟container大小差不多的情况下.如果图片很大的话,只显示中心部分是不行的 ...
- 负margin的原理及应用
在很多布局中我们经常能够见到类似于margin:-10px;的用法,我们对正值的用法早已熟悉的不能再熟悉了,可是这负值到底有何用呢?听我给你吹. 负margin——普通文档流 普通文档流元素(不浮动, ...
- 2019-5-12-WPF-模拟触摸设备
title author date CreateTime categories WPF 模拟触摸设备 lindexi 2019-05-12 16:19:32 +0800 2019-5-11 17:2: ...
- POJ 3111 K Best 最大化平均值 [二分]
1.题意:给一共N个物品,每个物品有重量W,价值V,要你选出K个出来,使得他们的平均单位重量的价值最高 2.分析:题意为最大化平均值问题,由于每个物品的重量不同所以无法直接按单位价值贪心,但是目标值有 ...