分布式专题-高性能的Web容器之Nginx01-Nginx的初步认识及配置

前言

Nginx中文文档
从这篇开始,我们讲Nginx,分为三小节:

互联网领域,作为新人学习一个开源框架或是组件,一般先了解官方文档,虽然英文,但是实为第一手资料,包括我在内的其他非专业开发人员写的都是自己的理解,所以会造成知识的二次传递,为什么BAT注重面试考察原理与实战解决问题的能力?更多的看中的是知识的深度与广度。所以,不是我今天在这里写出三篇关于Nginx的使用与原理,你就可以理解了(大佬略过)~
千里之行,始于足下。我想表达的是,看懂未必等于实际操作也可以,行动起来,用代码改变世界,你我一起创造未来!

什么是Nginx

是一个高性能的反向代理服务器

  • 正向代理代理的是客户端

  • 反向代理代理的是服务端

nginx网络配置

Apache、Tomcat、Nginx

静态web服务器

jsp/servlet服务器 tomcat

安装Nginx

1.下载tar包

nginx: download

2.tar -zxvf nginx.tar.gz

在这里插入图片描述

3…/configure [–prefix]
设置Nginx安装路径,如果没有指定,默认为/usr/local/nginx

在这里插入图片描述
执行后:
在这里插入图片描述

自定义安装路径:

./configure --prefix=/data/program/nginx/ --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre

在这里插入图片描述

4.make && make install

在这里插入图片描述

执行后:

在这里插入图片描述
如果安装期间有问题,可以参考:nginx安装配置Linux版本

nginx安装配置Linux版本问题排查

启动和停止

  1. {path}/sbin/nginx
    如果在configure的时候没有指定安装路径,则会默认安装到/usr/local/nginx目录。类似于在windows上安装一个软件,默认安装到C盘类似的效果。

不论哪种安装方式,直接进入安装目录的/sbin/nginx ,启动即可
在这里插入图片描述
也可以指定配置文件
在这里插入图片描述
最终去浏览器,访问默认的地址:localhost
在这里插入图片描述
2. ./nginx -s stop
在这里插入图片描述

nginx.conf

Main

event

http

虚拟主机配置

server {
	listen	80;
    server_name	localhost;
    #charset koi8-r;
    #access_log	logs/host.access.log	main;
    location / {
	   root	html;
	   index	index.html index.htm;
	  }
}

基于ip的虚拟主机

基于端口号的虚拟主机

server {

   listen	8080;

   server_name	localhost;

   location / {

   root	html;

   index index.html;

   }

}

基于域名的虚拟主机

server {

listen	80;

server_name	www.xxx.com;

location / {

root	html;

index index.html;

}

}

server {

listen	80;

server_name	bbs.xxx.com;

location / {

root	html;

index	bbs.html;

}

}

server {

listen	80;

server_name	ask.xxx.com;

location / {

root html;

index	ask.html;

}

}

location

配置语法

location [= | ~* | ^~ ] /uri/ {…}

配置规则

location = /uri 精准匹配
location ^~ /uri 前缀匹配
location ~ /uri
location / 通用匹配

规则的优先级

1 location = /
2 location = /index
3 location ^~ /article/
4 location ^~ /article/files/
5 location ~ .(gif|png|js|css)$
6 location /
http://192.168.11.154/
http://192.168.11.154/index ->2
http://192.168.11.154/article/files/1.txt ->4
http://192.168.11.154/mic.png ->5

  1. 精准匹配是优先级最高

  2. 普通匹配(最长的匹配)

  3. 正则匹配

实际使用建议


location =/ {

}

location / {

}

location ~* \.(gif|....)${

}

Nginx模块

反向代理、email、nginx core等

模块分类

  1. 核心模块 ngx_http_core_module

  2. 标准模块 http模块

  3. 第三方模块
    **
    ngx_http_core_module**

server{

listen port

server_name

root ...

}

location 实现uri到文件系统路径的映射

ngx_http_access_module
实现基于ip的访问控制功能

1、allow address | CIDR | unix: | all;

2、deny address | CIDR | unix: | all;

自上而下检查,一旦匹配,将生效,条件严格的置前

如何添加第三方模块

1 .原来所安装的配置,你必在重新安装新模块的时候,加上

  1. 不能直接make install

configure --prefix=/data/program/nginx

**
安装方法**

./configure --prefix=/安装目录 --add-module = /第三方模块的目录
./configure --prefix=/data/program/nginx --with-http_stub_status_module --with-http_random_index_module
cp objs/nginx $nginx_home/sbin/nginx

http_stub_status_module


location /status {

stub_status;

}

Active connections:当前状态,活动状态的连接数

accepts:统计总值,已经接受的客户端请求的总数

handled:统计总值,已经处理完成的客户端请求的总数

requests:统计总值,客户端发来的总的请求数

Reading:当前状态,正在读取客户端请求报文首部的连接的连接数

Writing:当前状态,正在向客户端发送响应报文过程中的连接数

Waiting:当前状态,正在等待客户端发出请求的空闲连接数

http_random_index_module

一般情况下,一个站点默认首页都是定义好的index.html、index.shtml等等,如果想站点下有很多页面想随机展示给用户浏览,那得程序上实现,很麻烦,使用nginx的random index即可简单实现这个功能,凡是以/结尾的请求,都会随机展示当前目录下的文件作为首页

  1. 添加random_index on 配置,默认是关闭的
location / {

root	html;

random_index on;

index	index.html index.htm;

}
  1. 在html目录下创建多个html页面

后记

本节的总结:

  1. Nginx在分布式架构中的应用分析

  2. 常用的Web服务器及差异

  3. Nginx的安装以及配置分析

  4. Nginx虚拟主机配置

  5. 详解Location的匹配规则

更多架构知识,欢迎关注本套Java系列文章Java架构师成长之路

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值