本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器。阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以去购买,或到体验馆去体验(半个月有效期)。至于如何注册、管理ECS这里就不详细介绍了。因为官方文档已经写的很清楚了。如果还不清楚,打咨询电话询问。

一、简介

  Nginx是一款轻量级的网页服务器、反向代理服务器。相较于Apache、lighttpd具有占有内存少,稳定性高等优势。它最常的用途是提供反向代理服务。

二 、安装

1、准备工作

Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下:

  1 SSL功能需要openssl库,直接通过yum安装: #yum install openssl

  2 gzip模块需要zlib库,直接通过yum安装: #yum install zlib

  3 rewrite模块需要pcre库,直接通过yum安装: #yum install pcre

2、安装Nginx依赖项和Nginx

  1 使用yum安装nginx需要包括Nginx的库,安装Nginx的库

    #rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

  2 使用下面命令安装nginx

    #yum install nginx

  3 启动Nginx

    #service nginx start

3、直接浏览器访问localhost就会出现Nginx的欢迎界面表示你安装成功了,否则就是安装失败了

  默认80端口加入防火墙访问白名单中:firewall-cmd --permanent --zone=public --add-port=80/tcp

  使用firewall-cmd --reload命令使其生效

4、配置Nginx

CentOS安装Nginx后,安装在了 /etc/nginx/目录下,你可以打开/etc/nginx/conf.d/default/conf查看里面的配置,包括监听端口,域名和nginx访问的根目录

三、配置

以上安装方法nginx的配置文件位于

/usr/local/nginx/conf/nginx.conf

Nginx配置文件常见结构的从外到内依次是「http」「server」「location」等等,缺省的继承关系是从外到内,也就是说内层块会自动获取外层块的值作为缺省值。

Server

接收请求的服务器需要将不同的请求按规则转发到不同的后端服务器上,在 nginx 中我们可以通过构建虚拟主机(server)的概念来将这些不同的服务配置隔离。

server {
listen       80;
server_name  localhost;
root   html;
index  index.html index.htm;
}

例如我们笔戈玩下的两个子项目 passport 和 wan 就可以通过在 nginx 的配置文件中配置两个 server,servername 分别为 passport.bigertech.com 和 wan.bigertech.com。这样的话不同的 url 请求就会对应到 nginx 相应的设置,转发到不同的后端服务器上。

这里的 listen 指监听端口,server_name 用来指定IP或域名,多个域名对应统一规则可以空格分开,index 用于设定访问的默认首页地址,root 指令用于指定虚拟主机的网页跟目录,这个地方可以是相对地址也可以是绝对地址。

通常情况下我们可以在 nginx.conf 中配置多个server,对不同的请求进行设置。就像这样:

server {
listen       80;
server_name  host1;
root   html;
index  index.html index.htm;
}
server {
listen       80;
server_name  host2;
root   /data/www/html;
index  index.html index.htm;
}

但是当 server 超过2个时,建议将不同对虚拟主机的配置放在另一个文件中,然后通过在主配置文件 nginx.conf 加上 include 指令包含进来。更便于管理。

include vhosts/*.conf;

就可以把vhosts的文件都包含进去啦。

Localtion

每个 url 请求都会对应的一个服务,nginx 进行处理转发或者是本地的一个文件路径,或者是其他服务器的一个服务路径。而这个路径的匹配是通过 location 来进行的。我们可以将 server 当做对应一个域名进行的配置,而 location 是在一个域名下对更精细的路径进行配置。

以上面的例子,可以将root和index指令放到一个location中,那么只有在匹配到这个location时才会访问root后的内容:

 location / {root   /data/www/host2;index  index.html index.htm;}
location 匹配规则~      波浪线表示执行一个正则匹配,区分大小写
~*    表示执行一个正则匹配,不区分大小写
^~    ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
=      进行普通字符精确匹配
匹配例子:location  = / {
# 只匹配"/".
[ configuration A ] }
location  / {
# 匹配任何请求,因为所有请求都是以"/"开始
# 但是更长字符匹配或者正则表达式匹配会优先匹配
[ configuration B ]
}
location ^~ /images/ {#匹配任何以 /images/ 开始的请求,并停止匹配 其它location
[ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配以 gif, jpg, or jpeg结尾的请求.
# 但是所有 /images/ 目录的请求将由 [Configuration C]处理.
[ configuration D ]
}请求:
/ -> 符合configuration A
/documents/document.html -> 符合configuration B
/images/1.gif -> 符合configuration C
/documents/1.jpg ->符合 configuration D

静态文件映射

访问文件的配置主要有 root 和 aliasp's 两个指令。这两个指令的区别容易弄混:

alias
alias后跟的指定目录是准确的,并且末尾必须加 /。

location /c/ {alias /a/;
}

如果访问站点http://location/c访问的就是/a/目录下的站点信息。

root

root后跟的指定目录是上级目录,并且该上级目录下要含有和location后指定名称的同名目录才行。

location /c/ {root /a/;
}

这时访问站点http://location/c访问的就是/a/c目录下的站点信息。

如果你需要将这个目录展开,在这个location的末尾加上「autoindex on; 」就可以了

转发

配置起来很简单比如我要将所有的请求到转移到真正提供服务的一台机器的 8001 端口,只要这样:

location / {
proxy_pass 172.16.1.1:8001;
}

这样访问host时,就都被转发到 172.16.1.1的8001端口去了。

负载均衡

upstream myserver; {
ip_hash;
server 172.16.1.1:8001;
server 172.16.1.2:8002;
server 172.16.1.3;
server 172.16.1.4;
}
location / {
proxy_pass http://myserver;
}

我们在 upstream 中指定了一组机器,并将这个组命名为 myserver,这样在 proxypass 中只要将请求转移到 myserver 这个 upstream 中我们就实现了在四台机器的反向代理加负载均衡。其中的 ip_hash 指明了我们均衡的方式是按照用户的 ip 地址进行分配。另外还有轮询、指定权重轮询、fair、url_hash几种调度算法。

阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以去购买,或到体验馆去体验(半个月有效期)。至于如何注册、管理ECS这里就不详细介绍了。因为官方文档已经写的很清楚了。如果还不清楚,打咨询电话询问。

如何搭建nginx服务器?相关推荐

  1. 在阿里云服务器(ECS)上从零开始搭建nginx服务器

    本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器.阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以到http://www.aliyun.com/product/ecs去购买,或到体验 ...

  2. 搭建nginx服务器及文件的配置

    一.搭建nginx服务器及平滑升级 1.搭建基本的nginx服务器 准备nginx-0.8和nginx-1.0两个源码包 [root@localhost nginx-package]# tar -zx ...

  3. nginx mac 服务器 html,Mac上搭建 nginx 服务器

    因为需要做一个自己的内测分发平台,所以需要搭建一台自己的服务器,于是我选择了使用它 nginx 来搭建服务器,很方便,很简单. 本文主要讲一下如何在 mac 上搭建 nginx 服务器,已经一些简单的 ...

  4. ubuntu搭建nginx服务器,并测试axel与wget的下载速度

    1.搭建nginx服务器 安装nginx sudo apt install nginx 创建conf文件 sudo gedit /etc/nginx/conf.d/file_server.conf 修 ...

  5. 十八.搭建Nginx服务器、配置网页认证、基于域名的虚拟主机、ssl虚拟主机

    配置要求: client:192.168.4.10 proxy:192.168.4.5(eth0) 192.168.2.5(eth1) web1:192.168.2.100 web2:192.168. ...

  6. Linux下搭建nginx服务器

    Linux下搭建nginx服务器   Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.其特点是占有内存少,并发能力强,事实 ...

  7. ECS搭建nginx服务器在阿里云

    需要搭建自己的服务器除了使用本地PC外,我们还可以使用阿里.腾讯.新浪等平台提供的云服务器. 本文主要记录在阿里云上运行Ubuntu系统搭建nginx服务器的过程. 使用阿里云搭建nginx服务器总体 ...

  8. nginx安装、使用及搭建nginx服务器

    nginx安装.使用及搭建nginx服务器 一.前情知识 1.what is 服务? 2.what is ngnix服务? 3.how to 搭建? 4.what is 防火墙和端口 二.安装ngni ...

  9. 使用docker 搭建Nginx服务器,照做就行

    大家好,今天分享使用docker 搭建Nginx服务器 首先,我们使用的是vm 虚拟机搭建的Linux (我不是使用云主机做的) 然后,我们要在Linux上开放一个端口,用于外界(外网)访问 在Lin ...

最新文章

  1. Python 标准库之 time
  2. [YTU]_2536( C++ 长方体继承自矩形)
  3. Linux CentOS 6.x设置静态IP(亲测有效)
  4. idea 代码格式化插件_IDEA非常棒的插件,阿里巴巴约定成文的代码公约规范
  5. 汉诺塔计算移动次数和消耗体力
  6. P1666 前缀单词
  7. FPGA状态机三段式
  8. (转)Spring4.2.5+Hibernate4.3.11组合开发
  9. android+动态地图+效果图,Android百度地图绘制圆形,圆形半径可动态变化
  10. [51单片机] 四相五线减速比为1/64步进电机驱动设计
  11. 【网络工程师】 H3C如何配置VLAN-trunk 二层隔离技术
  12. 带圈数字字体1-100
  13. 自适应大邻域搜索算法
  14. android渠道占有率,硬核联盟分发量在安卓渠道占比高达64%,2019年将发力四大方向...
  15. 计算机的cpu不能用,CPU故障该怎么确定?解决办法?
  16. CAD看图软件查看CAD图纸
  17. 图灵机器人接口实现自动回复(web版)
  18. 利用AI+大数据的方式分析恶意样本(十三)
  19. java poi 操作Excel 删除行内容和直接删除行
  20. 字模存储计算大学计算机是啥,大学计算机模拟题.doc

热门文章

  1. 利用虚拟机配置SDN网络实验平台(virtual box+Ubuntu+jdk配置+mininet+floodlight/openDaylight)
  2. java查找_用Java如何实现搜索功能?
  3. subfinder子域名发现工具
  4. 【RK PX30】 瑞芯微四核64位工业级芯片PX30[RK3358]安卓核心板
  5. VsCode c++环境配置(最新版)
  6. c++读取文件夹下的多个txt.文件并计算每个txt数据的平均值
  7. 【Python】【Java】【面试】【WordPress】【深度学习】【开源软件】| Chat · 预告
  8. oracle hm,Oracle 11g 新特性 – HM(Hang Manager)简介
  9. Qt编写带频谱的音乐播放器
  10. 单点登录、域用户、常规登录、AD域