nginx是高性能的轻量级web服务器。

特性:

1.http代理

2.反向代理

3.负载均衡

4.缓存机制

一,安装及启动(centos7,nginx 1.14.0)

1.下载

wget http://nginx.org/download/nginx-1.14.0.tar.gz

2.安装

#第三方库
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
yum -y install pcre-devel #可以使用pcre-config —version查看版本 #解压安装包
tar zxvf nginx-1.14.0.tar.gz #从configure脚本自动生成makefile
cd nginx-1.14.0
./configure --prefix=/usr/local/webserver/nginx #--prefix是指定安装路径,根据自己的情况而定 #编译安装
cd nginx-1.14.0
make && make install #编译成功后查看版本
/usr/local/webserver/nginx/sbin/nginx -v #安装后的目录有四个conf,html,logs,sbin

3.启动

/usr/local/webserver/nginx/sbin/nginx

浏览器访问

二,常用指令

1.启动测试文件

/usr/local/webserver/nginx/sbin/nginx -t

2.指定配置文件启动

/usr/local/webserver/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

3.重启

/usr/local/webserver/nginx/sbin/nginx -s reopen

4.重载配置文件,也有重启的作用

/usr/local/webserver/nginx/sbin/nginx -s reload

5.停止

/usr/local/webserver/nginx/sbin/nginx -s stop

三,配置结构图

结构说明:

1)全局块:作用于nginx全局,通常包括以下部分

  • 配置运行nginx服务器用户(组)
  • worker process 数
  • nginx进程PID存放路径
  • 错误日志的存放路径
  • 配置文件的引入

2)events块:影响nginx服务器与用户的网络连接,包括:

  • 设置网络连接的序列化
  • 是否允许同时接收多个网络连接
  • 事件驱动模型的选择
  • 最大连接数的配置

3)http块:

  • 定义MIMI-Type   #资源的媒体类型 ,参考
  • 自定义服务日志
  • 允许sendfile方式传输文件
  • 连接超时时间
  • 单连接请求数上限  #控制 Nginx 单个进程允许的最大连接数,参考

4)server块:

  • 配置网络监听
  • 基于名称的虚拟主机配置
  • 基于ip的虚拟主机配置

5)location块:

  • location配置
  • 请求根目录配置
  • 更改location的URI
  • 网站默认首页配置

四,配置实例

实例解

#全局块
user nobody nobody; #指定能运行nginx的用户(组) 指令格式:user user [group];如果不配置,或者为本例配置,则所有用户都可以启动nginx进程
worker_processes 3; #nginx的工作进程数,3表示最多可以产生3个工作进程,可以通过ps -aux|grep nginx查看到,如果选auto,则为自动检测
error_log logs/error.log; #错误日志的路径
pid logs/nginx.pid; #nginx进程是作为系统守护进程运行的,需要在某文档中保存当前当前运行程序的主进程号。指令格式pid file;指定文件名称,本例中是默认值
#以下是全局块中此例没有列出的
#配置文件引入。指令格式include file;用于引入第三方模块配置或其他nginx配置 #events块
events {
use epoll; #事件驱动模型的选择,可以选择如select、poll、kqueue、epoll、rtsig
worker_connections 1024; #表示允许每一个worker process可以同时开启的最大连接数,默认是512
#以下是events块没有列出的
#设置网络连接的序列化。指令格式:accept_mutex on|off; 默认是on状态,表示会对多个nginx进程接收连接进行序列化,防止多个进程对连接的争抢,#即worker将是以串行方式来处理,其中有一个worker会被唤醒。#而off 表示所有worker都会被唤醒,但只有一个worker能获得新连接,其他会重新进入休眠。
#是否允许同时接收多个网络连接。指令格式:multi_accept on|off。默认是off,即是每个worker process一次只能接收一个新到达的网络连接
} #http块
http {
#http块全局
include mime.types; #将mime.types文件包含进来,可以通过cat mime.type来查看mime.types的内容
default_type application/octet-stream; #指令格式是:default_type mime-type;
其中MIME-Type指的是网络资源的媒体类型,也即前端请求的资源类型,是mime.types的内容的一种。
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '   #定义个一个名为main的日志格式
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main; #自定义服务日志的路径+名称,指令格式是access_log path [format],其中format是日志的字符串格式,可以使用log_format定义格式,此处是使用名称为main的format格式,
sendfile on; #是否允许sendfile方式传输文件,指令格式为sendfile on|off;sendfile_max_chunk size; size=0表示每个worker process每次调用sendfile()传输的数据的最大值。不限制,默认是0
keepalive_timeout 65; #表示server端对连接的保持时间。默认是75s,指令格式为:keeplive_timeout timeout [header_timeout];header_timeout表示在应答报文头部的keep-Alive域设置超时时间“Keep-Alive:timeout=header_timeout"
#以下没有在http块列出
#单连接请求数上限,指令格式为:keepalive_requests number; #用于限制用户通过某一连接向nginx服务器发起请求的次数 #server块
server {
#server全局块
listen 8088; #设置网络监听,指令格式两种:1.listen IP [:port];2.listen port;1是监听某IP的所有(或某一)端口,2是监听某一端口的所有IP
server_name codesheep; #基于名称和IP的虚拟主机配置,指令格式:server_name name1 name2 ...;此处的name支持正则表达式,例如:server_name ~^www\d+\.myserver\.com$
3
access_log /codesheep/webserver/server1/log/access.log; #自定义日志
error_page 404 /404.html; #错误提示与错误页

#location块
location /server1/location1 { #location配置,指令格式:location [ = | ~ | ~* | ^~ ] uri {...};其中uri分为标准uri 和 正则uri;
# =(请求字符串与uri严格匹配) 和 ^~(寻找标识uri和请求字符串匹配度最高的location后,立即用此location处理请求) 用于标准uri
# ~(区分大小写)和 ~*(不区分大小写) 用于正则uri
root /codesheep/webserver; #请求根目录配置,指令格式:root path;path是nginx接收请求后查找资源的根目录路径;还可以通过alias 更改location接收到的URI请求路径,指令为:alias path
index index.server2-location1.htm; #设置网站的默认首页,指令格式:index file ....;其中file可以包含多个用空格隔开的文件名,先找到哪个就用哪个响应请求
} location /server1/location2 {
root /codesheep/webserver;
index index.server2-location2.htm;
} } server {
listen 8089;
server_name 192.168.31.177;
access_log /codesheep/webserver/server2/log/access.log;
error_page 404 /404.html; location /server2/location1 {
root /codesheep/webserver;
index index.server2-location1.htm;
} location /srv2/loc2 {
alias /codesheep/webserver/server2/location2/;
index index.server2-location2.htm;
} location = /404.html {
root /codesheep/webserver/;
index 404.html;
} } }

https://www.jianshu.com/p/dc61f1789f47

https://www.jianshu.com/p/39bdc25adaf0

Nginx服务器安装及配置解释的更多相关文章

  1. Nginx配置文件具体配置解释

    Nginx配置文件具体配置解释   #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错 ...

  2. CentOS 8 下 nginx 服务器安装及配置笔记

    参考文档 nginx官方文档 安装 在CentOS下,nginx官方提供了安装包可以安装 首先先安装前置软件 sudo yum install yum-utils 然后将nginx官方源加入到yum源 ...

  3. nginx 下 location 配置解释

    当我们在使用负载均衡和反向代理的时候 我们会考到虚拟主机下面有着个配置 现在我们看一下反向代理的location 下面的配置实例: server { listen 80 ;    监听的端口号 ser ...

  4. 【设置】Nginx配置文件具体配置解释

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  5. nginx详解(代理服务器的解释+nginx 在linux 下的安装+nginx.conf 中的配置解释)

    一.概论 1.什么是代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬 ...

  6. Nginx高性能服务器安装、配置、运维 (5) —— Nginx虚拟主机配置

    六.Nginx虚拟主机配置 建立基于域名的虚拟主机: (1)建立基于域名的虚拟主机配置文件(以abc.com为例): (2)更改虚拟主机配置文件: 更改配置如下(更改部分即可): server { l ...

  7. windows下Nginx反向代理服务器安装与配置

    感谢慕课网Geely老师的讲解,本人将Nginx进行如下的总结. Nginx是一款轻量级的Web服务器,也是一款反向代理服务器,其主要特点:高稳定, 高性能,资源占用少功能丰富,模块化结构 支持热部署 ...

  8. nginx 的基础配置[转]

    nginx 的基础配置 分类: 工具软件2013-11-13 23:26 11人阅读 评论(0) 收藏 举报   目录(?)[-] 管理配置文件 全局配置 虚拟机server配置 location配置 ...

  9. nginx服务器安装与启动

    nginx服务器介绍 1.nginx服务器功能 nginx服务器可以扮演:轻量级的web服务器.应用服务器.代理服务器.反向代理服务器.后台服务器.CDN缓存服务器 nginx的基本模块: 内核模块C ...

随机推荐

  1. mac安装MongoDB教程

    目录 介绍 下载安装 方法1 方法2 配置 配置PATH 创建log和data目录 启动 关闭 介绍 基于分布式文件存储的数据库,使用C++编写. 应用最广泛的非关系型数据库(NoSQL). NoSQ ...

  2. 最优解的lingo和MATLAB解法

    最近运筹学学了线性规划和单纯形法,然后老师讲到了运用lingo和MATLAB软件分别求解的方法 首先,我们来讲讲lingo的(小技巧,只要把鼠标滑轮固定在输入界面按ctrl就可以放大了) lingo比 ...

  3. [UWP]使用GetAlphaMask制作阴影

    1. 前言 最近常常接触到GetAlphaMask,所以想写这篇文章介绍下GetAlphaMask怎么使用.其实GetAlphaMask的使用场景十分有限,Github上能搜到的内容都是用来配合Dro ...

  4. 再谈 APISIX 高性能实践

    2019 年 8 月 31 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·成都站,APISIX 主要作者王院生在活动上做了<APISIX ...

  5. 总结Java equals()和hashCode()的联系

    Java equals()和hashCode()的联系 如果两个对象是相等的,那么它们必须有相同的哈希码. 如果两个对象具有相同的哈希码,他们可能相等,可能不相等. 如果两个对象是不同的类的实例 他们 ...

  6. Java IO编程——字符流与字节流

    在java.io包里面File类是唯一 一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能够操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操作.而对于程序而 ...

  7. django-URL重定向(八)

    HttpResponseRedirect()不常用 redirect(to,permanent=False,*args,**kwargs) to:指重定向的位置,可以是视图,也可以是url地址,也可以 ...

  8. 设计模式C++描述----07.建造者(Builder)模式

    一. 概述 Builder 模式要解决的问题是:当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),我们要要复杂对象的创建过程和这个对象的表示(展示)分离开 来,这样做的好处就是通过一步 ...

  9. rsync的笔记整理

    Rsyncd数据同步工具 1.什么是Rsyncs? Rsync(Remote synchronization)是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsy ...

  10. Unity资源加载路径及加载方式小结

    Unity3D中的资源路径路径属性 路径说明Application.dataPath 此属性用于返回程序的数据文件所在文件夹的路径.例如在Editor中就是Assets了.Application.st ...