Nginx基础配置

查看nginx配置文件分类

主配置文件:

nginx.conf

include conf.d/*.conf

fascgi uwsgi scgi 等协议相关配置文件

nginx.conf文件结构

主配置文件结构:

main block;#全局块配置全局生效

event{
	#事件驱动相关配置
}

http{

#http/https协议相关配置段
server {
...
}:#每个server用于定义一个虚拟主机;
server {
...
server_name
root
alias
location [OPERATOR] URL {
...
if CONDITION {
...
}
}
}
}
stream{
#tcp协议配置段
}

1.全局块

全局块主默认的配置文件从开始到event块之间的的一部分内容,主要设置影响Nginx整个配置指令,影响全局;

2.event块

event块主要涉及到的指令用于响应nginx服务器与用户的网络连接,常用于配置时间驱动等模块信息;

3.http块

http块是nginx配置文件中最为重要的块,http自己的全局块,包括大多数第三方模块配置也可以添加到这个模块中,server块也可以包含在这个快中,

4.server块主要定义虚拟主机

5.location块

每个server块中可以包含多个location块,location块主要用于nginx服务器接收来自客户端的请求的URL字符串进行匹配处理,nginx许多功能都是在此进行配置的。

正常运行的配置:

http实例配置

user nobody;
pid /var/log/nginx/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 1024;
master_process on;
error_log /var/log/nginx/error.log;
--------------------------------------------------------------------------------------------------------------------------
events {
worker_connections 1024;
use epoll;
accept_mutex on;
}
--------------------------------------------------------------------------------------------------------------------------
http{
include       mime.types;
default_type  application/octet-stream;
keepalive_timeout  65;
gzip  on;
server {
        listen 80;
        server_name app.liaoxz.com;
        root   /usr/local/nginx/html/app/;
        index  index.html index.htm;
}
server {
        listen 8090;
        server_name abb.liaoxz.com;
       root /usr/local/nginx/html/abb/;
        index index.html;
}
}

1.cpu相关配置

1.设置worker process 数

worker process是nginx实现高并发的主要关键配置,这个建议与cpu核心数一致,

配置work proccess的语法格式:

worker_processes  number;

2.worker_cpu_affinity cpumask ...;

worker_cpu_affinity auto [cpumask];

将worker进程与cpu进行绑定(绑定之后来自同一worker个进程的请求就会直接使用当前所绑定所指定的cpu)

建议设置成auto,auto表示在服务启动时就将worker进程与之绑定。

用户及进程相关

1.user uesr [group]

设置工作进程所使用的用户或组

2.pid /PATH/TO/PID_FILE;

指定存储nginx主进程进程号码的文件路径;

3.worker_priority number;

指定worker进程的nice值,设定worker进程优先级;[-20,20]

4.worker_rlimit_nofile number;

worker进程所能够打开的文件数量上限;

5.master_process on |off;

是否以master/worker模型运行nginx

4.include file | mask;

指明包含进来的其它配置文件片断;

5.load_module file;

指明要装载的动态模块;

事件驱动相关配置

events{

1)worker_cnnections number;

每个worker进程所能打开的最大并发连接数

2)use method epoll|select|poll;

指明并发连接请求的处理方法;

建议使用epoll

use epoll;

3)accept_mutex on |off;

处理新的连接请求方法;on意味着由各worker轮流处理新请求,off意味着每个新的请求会通知所有的worker进程

}

Nginx Gzip压缩

使用模块 ngx_http_gzip_module

http://nginx.org/en/docs/http/ngx_http_gzip_module.html

1.Syntax: gzip on | off;

Default:

gzip off;

Context: http, server, location, if in location

默认是off,不启动Gzip功能,设置为on为生效

2.Syntax: gzip_buffers number size;

Default:

gzip_buffers 32 4k|16 8k;

Context: http, server, location

用于指定缓冲区数量及每个缓存区的大小

number 缓冲区数量

size 缓存区大小

3。Syntax: gzip_comp_level level;

Default:

gzip_comp_level 1;

Context: http, server, location

指定压缩程度数字越高表示压缩效率越高,但是占用系统资源,建议适当设置

4.Syntax: gzip_disable regex ...;

Default: —

Context: http, server, location

This directive appeared in version 0.6.23.

针对不同类型客户端进行选择是否开启gzip功能

regex 表示浏览器类型 支持使用正则表达式

IE浏览器 MSIE [6-10]\;

5.Syntax: gzip_types mime-type ...;

Default:

gzip_types text/html;

Context: http, server, location

压缩过滤器,仅对此处设定的MIME类型的内容启用压缩功能;

6.Syntax: gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;

Default:

gzip_proxied off;

Context: http, server, location

Enables or disables gzipping of responses for proxied requests depending on the request and response. The fact that the request is proxied is determined by the presence of the “Via” request header field. The directive accepts multiple parameters:

off

disables compression for all proxied requests, ignoring other parameters;

expired

enables compression if a response header includes the “Expires” field with a value that disables caching;

no-cache

enables compression if a response header includes the “Cache-Control” field with the “no-cache” parameter;

no-store

enables compression if a response header includes the “Cache-Control” field with the “no-store” parameter;

private

enables compression if a response header includes the “Cache-Control” field with the “private” parameter;

no_last_modified

enables compression if a response header does not include the “Last-Modified” field;

no_etag

enables compression if a response header does not include the “ETag” field;

auth

enables compression if a request header includes the “Authorization” field;

any

enables compression for all proxied requests.

nginx作为代理服务器接收到从被代理服务器发送的响应报文后,在何种条件下启用压缩功能的;

off:对代理的请求不启用

no-cache, no-store,private:表示从被代理服务器收到的响应报文首部的Cache-Control的值为此三者中任何一个,则启用压缩功能;

其他相关请查阅的官方文档http://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_disable

http{

include       mime.types;

default_type  application/octet-stream;

keepalive_timeout  65;

gzip  on;

gzip_comp_level 4;

gzip_disable MISE [4-6]\;

gzip_buffers 32 4k;

}

nginx rewrite功能配置

Rewrite 是nginx提供的一个重要功能,其在web服务器中必然会使用到的指令,例如在网站结构更改后,客户端任可以使用之前使用的URL来进行访问等操作,实现URL替换功能;

Rewrite功能是由ngx_http_rewrite_module模块提供;

1、rewrite regex replacement [flag]

将用户请求的URI基于regex所描述的模式进行检查,匹配到时将其替换为replacement指定的新的URI;

注意:如果在同一级配置块中存在多个rewrite规则,那么会自下而下逐个检查;被某条件规则替换完成后,会重新一轮的替换检查,因此,隐含有循环机制;[flag]所表示的标志位用于控制此循环机制;

如果replacement是以http://或https://开头,则替换结果会直接以重向返回给客户端;

301:永久重定向;

[flag]:

last:重写完成后停止对当前URI在当前location中后续的其它重写操作,而后对新的URI启动新一轮重写检查;提前重启新一轮循环;

break:重写完成后停止对当前URI在当前location中后续的其它重写操作,而后直接跳转至重写规则配置块之后的其它配置;结束循环;

redirect:重写完成后以临时重定向方式直接返回重写后生成的新URI给客户端,由客户端重新发起请求;不能以http://或https://开头;

permanent:重写完成后以永久重定向方式直接返回重写后生成的新URI给客户端,由客户端重新发起请求;

location / {

rewrite ^/ http://abb.liaoxz.com/abb;

root   html;

index  index.html index.htm;

}

2.if (condition) { ... }

引入一个新的配置上下文 ;条件满足时,执行配置块中的配置指令;server, location;

condition:

比较操作符:

==

!=

~:模式匹配,区分字符大小写;

~*:模式匹配,不区分字符大小写;

!~:模式不匹配,区分字符大小写;

!~*:模式不匹配,不区分字符大小写;

文件及目录存在性判断:

-e, !-e

-f, !-f

-d, !-d

-x, !-x

3.return

return code [text];

return code URL;

return URL;

Stops processing and returns the specified code to a client.

停止处理并将指定的代码返回给客户端。 非标准代码444关闭连接而不发送响应报头。

4. rewrite_log on | off;

是否开启重写日志;

5.set $variable value;

用户自定义变量

时间: 2024-12-29 07:13:59

Nginx基础配置的相关文章

nginx基础配置加基础实战演示

目录 基本配置 设置用户 工作衍生进程数 错误日志存放路径 pid文件存放路径 设置最大连接数 http->server gzip 字符编码 nginx的基本格式 实战配置 虚拟主机配置 开始配置虚拟主机的ngix配置 查看日志是否有内容 基本配置 设置用户 设置用户,可以指明哪个用户可以使用nginx,nobody是低权限用户,提高用户的安全性.有"#"代表不需要设置用户. user nobody; 工作衍生进程数 工作衍生进程数, 1代表CPU的核数是1,也可以是核数的dou

nginx 基础配置中文详解

#定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数.worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info; #进程文件pid /var/run/nginx.pid; #一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulim

nginx 基础配置详解

#本文只对nginx的最基本配置项做一些解释,对于配置文件拆分管理,更详细的集群健康检查的几种方式,检查策略等在此不做详细解释了. #运行用户user nobody;#启动进程,通常设置成和cpu的数量相等worker_processes 1; #全局错误日志及PID文件#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info; #pid logs/nginx.pid; #工

nginx基础配置(多个虚拟主机)

nginx配置多个虚拟主机(mac) 1 . 安装  通过homebrew安装nginx,默认安装在:/usr/local/Cellar/nginx/版本号.配置文件在路径:/usr/local/etc/nginx ,默认配置文件nginx.conf,这个文件主要配置了localhost:8080这个,sudo nginx命令启动nginx,在地址栏输入localhost:8080,不出意外的话,就能访问到默认的页面,也就是nginx目录下面的html/index.html. 2. 配置两个虚拟

nginx基础及其相关配置

nginx基础 Nginx的基本架构 一个master主进程,生成一个或多个worker子进程 事件驱动 epoll(边缘触发),用于Linux kqueue:用于BSD /dev/poll: IO复用器:select.poll.rt signal 支持sendfile及sendfile64 支持AIO 支持mmap 名词解释: sendfile机制:正常响应报文路径"内核空间-->用户空间-->内核空间-->客户端",如果报文在用户空间不做任何改变时,路径不再经由用

手把手教你nginx基础安装配置

手把手教你nginx基础安装配置! 一.Nginx安装及简单配置: 安装环境和依赖的包: #yum groupinstall "developmenttools" "server platform development" # yum -yinstall pcre-devel #yum install openssl-devel 下载相关nginx源码包: #wgethttp://nginx.org/download/nginx-1.6.2.tar.gz 解压缩源码

Nginx简介与基础配置

何为Nginx? Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.最初是为了解决C10k的问题,由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日. 其特性有: √模块化设计,较好的扩展性 Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux.FreeBSD.Solaris.Mac OS X.AIX以及M

Varnish基础配置实现动静分离web站点

由于一个web站点的程序的访问具有局部性特征:时间上的局部性:一个数据被访问过之后,可能很快会被再次访问到:空间局部性:一个数据被访问时,其周边的数据也有可能被访问到;varnish可将这部分数据缓存下来.缓存的数据存在被访问较频繁的数据可以称其为热区:缓存同样存在局部性:时效性:如果缓存空间耗尽:则采用LRU,最近最少使用算法:将过期的缓存清理掉 varnish的基本工作原理: Varnish通过类似于HTPP反向代理的方式将可以用来缓存的数据缓存下来直接响应给客户端的缓存数据,如果缓存中没有

Nginx基础笔记

Nginx基础笔记 资源 安装 ubuntu下 编译安装 基本操作 HTTP基本配置 配置说明 配置文件目录结构 配置文件结构 模块 模块化 index模块 Log模块 Real IP模块 Access模块 Rewrite模块 Proxy模块 upstream模块 其他 配置静态化目录 负载均衡 控制页面缓存 nginx的内置变量 nginx小结 资源 资源 Nginx 官网 Nginx 官方下载地址 Nginx最佳实践配置项目 地址 Nginx Configuration wiki 教程 ag