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 ...
随机推荐
- a span做成按钮时,文字不被选中样式
HTML: <a class="button"></a> <span class="button"></span> ...
- POJ 1961 Period 还是next数组的含义、
题意:求所给串的前缀(包括原串)中有多少循环串(子串长度至少要是周期的两倍) 思路:还是next数组的应用问题.如果不懂next数组的话 http://www.cnblogs.com/sasuke-/ ...
- 命名实体识别视频51cto
https://edu.51cto.com/center/course/lesson/index?id=402918 https://edu.51cto.com/course/18466.html
- 洛谷P2590 [ZJOI2008]树的统计 题解 树链剖分+线段树
题目链接:https://www.luogu.org/problem/P2590 树链剖分模板题. 剖分过程要用到如下7个值: fa[u]:u的父节点编号: dep[u]:u的深度: size[u]: ...
- seo优化:302跳转变为301跳转
<?php header("Location: http://www.XXX.com",TRUE,301); exit; ?> 要加exit;不加exit;还是会是30 ...
- UA判断打开页面的环境,然后在callBack写相应环境下的回调函数
这是js代码 /* * 2016.11.10 * SunJingxin * V 1.0.0 * */ (function(){ /* * 使用方法: * 一.引入ua.js * 二.直接调用 Mobi ...
- SAX解析xml (遍历DOM树各节点)
本文参考 http://yangjunfeng.iteye.com/blog/401377 1. books.xml <?xml version="1.0" encoding ...
- 2018-12-25-SourceYard-制作源代码包
title author date CreateTime categories SourceYard 制作源代码包 lindexi 2018-12-25 9:43:7 +0800 2018-12-09 ...
- P1096 4个数的全排列
题目描述 输入4个有序的个位数.按照字典序输出它们的全排列. 输入格式 输入四个数字a,b,c,d.(0<=a,b,c,d<10) 输出格式 输出它们的全排列.每个排列占一行.而且每个排列 ...
- 备战省赛组队训练赛第十八场(UPC)
传送门 题解:by 青岛大学 A:https://blog.csdn.net/birdmanqin/article/details/89789424 B:https://blog.csdn.net/b ...