nginx默认配置文件(初识nginx配置文件以及基本命令)

nginx默认配置文件(初识nginx配置文件以及基本命令)

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

大家好,今天来介绍nginx默认配置文件(docker查看nginx版本)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!

初识Nginx配置文件以及基本命令

配置文件名为 nginx.conf ,Linux放在目录: /usr/local/nginx/conf 、 /etc/nginx , 或 /usr/local/etc/nginx 中;Windows放在 安装目录\conf 中。 依据实际安装情况决定

nginx由配置闭码衫文件中指定的指令控制模块组成。 指令分为 简单指令 块指令
简单指令 由空格分隔的名称和参数组成,并以分号 ; 结尾;
块指令 具有与简单指令相同的结构,但是是以大括号 { 和 } 包围的一组附加指令。 如果块指令在大括号内部有其他指令,则称为上下文(例如: events , http , server 和 location );
配置文件中放置在任何上下文之外的伪指令都被认为是主上下文。 events 和 http 指令驻留在主上下文中, server 在 http 中的,而 location 在 server 块中。一个配置文件一个 http ,一个及以上个 server ,一个 server 运行一个工作进程并代表一个虚拟服务器;
# 号所在的一行被视为注释;
几个顶级指令将适用于不同流量类型的指令组合在一起:

对于大多数指令,在子模告上下文中定义的上下文将继承父级中包含的伪指令的值,要覆盖从父进程继承的值,子上下文中需要包含该指令(即子上下文要显式声明)。

打开配置文件(如 /usr/local/nginx/conf/nginx.conf ),默认的配置文件已经包含了服务器块的几个示例,大部分是注释掉的。 现在注释掉所有这样的块,并启动一个新的服务器块:轿腔

每个 server 上下文都可以指定要监听的端口、server_name,当nginx决定哪个服务器处理请求后,它会根据服务器块内部定义的location指令的参数测试请求头中指定的URI, 比如如下配置,系统中创建 /data 目录及其子目录 /www :

第一个 location 块指定与请求中的URI比较 / 前缀。 对于匹配请求,URI将被添加到 root 指令中指定的路径(即 /data/www ),形成本地文件系统中的请求文件路径。 如果有几个匹配的location块,nginx将选择具有最长前缀来匹配location块。 上面第一个 location 块提供最短的前缀长度为1,因此只有当所有其他location块不能提供匹配时,才会使用该块。第二个 location ,将是以 /images/ 的请求来匹配,位置 / 也匹配这样的请求,但具有较短前缀,也就是 /images/ 比 / 长。

这已经是一个在标准端口 80 上侦听并且可以在本地机器上访问的服务器 http://localhost/ 的工作配置, 端口 80 和 server_name localhost 可以省略,它们为默认值 。 响应以/images/开头的URI的请求,服务器将从 /data/images 目录发送文件。 例如,响应 http://localhost/images/logo.png 请求,nginx将发送服务上的 /data/images/logo.png 文件。 如果文件不存在,nginx将发送一个指示 404 错误的响应。 不以 /images/ 开头的URI的请求将映射到 /data/www 目录。 例如,响应 http://localhost/about/example.html 请求时,nginx将发送 /data/www/about/example.html 文件。

反向代理应该是Nginx做的最多的一件事了,反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。简单来说就是真实的服务器不能直接被外部网络访问,所以需要一台代理服务器,而代理服务器能被外部网络访问的同时又跟真实服务器在同一个网络环境,当然也可能是同一台服务器,端口不同而已。
通过向nginx配置文件添加一个server块来定义代理服务器,其中包含以下内容:

这将是一个监听端口 8080 的简单服务器,并将所有请求映射到本地文件系统上的 /data/up1 目录。 请注意,root指令位于server块上下文中,当选择用于服务请求的 location 块不包含自己的 root 指令时,将使用此root指令。创建 /data/up1 目录然后可以将一个静态网页比如 index.html 文件放入其中,然后访问 http://localhost:8080/ 即可访问该文件。
目前为止,还是配置的静态资源访问,并不是代理服务器,然后增加或修改现有 location 上下文,改为如下:

当用户访问 http://localhost:8080/ 时,会返回 http://localhost:8181 服务器的的资源。
location 上下文后面的参数,可以是正则表达式,如果是正则表达式,前面要加 ~ ,比如:

以上配置表示,nginx接收到所有以.gif,.jpg或.png结尾的URI,相应的请求将映射到/data/images目录。当nginx选择一个location块来提供请求时,它首先检查指定前缀的location指令,记住具有最长前缀的location,然后检查正则表达式。 如果与正则表达式匹配,nginx会选择此location,否则选择之前记住的那一个。

要找到最符合URI的位置,NGINX首先将URI与前缀字符串的位置进行比较。然后用正则表达式搜索位置。除非使用^~修饰符对正则表达式给予更高的优先级。在前缀字符串中,NGINX选择最具体的字符串(也就是最长和最完整的字符串)。 下面给出了选择处理请求的位置的确切逻辑:

测试所有URI的前缀字符串。 = (等号)修饰符定义了URI和前缀字符串完全匹配。如果找到完全匹配,则搜索停止。如果 ^~ (插入符号)修饰符预先添加最长匹配前缀字符串,则不会检查正则表达式。存储最长匹配的前缀字符串。根据正则表达式测试URI。断开第一个匹配的正则表达式并使用相应的位置。如果没有正则表达式匹配,则使用与存储的前缀字符串相对应的位置。

= 修饰符的典型用例是 / (正斜杠)的请求。 如果请求/是频繁的,则指定 = / 作为location指令的参数加速处理,因为搜索匹配在第一次比较之后停止。

要启动nginx,请运行可执行文件。 当nginx启动后,可以通过使用-s参数调用可执行文件来控制它。 使用以下语法:

信号(signal)的值可能是以下之一:

当主进程收到要重新加载配置的信号,它将检查新配置文件的语法有效性,并尝试应用其中提供的配置。 如果这是成功的,主进程将启动新的工作进程,并向旧的工作进程发送消息,请求它们关闭。 否则,主进程回滚更改,并继续使用旧配置。 老工作进程,接收关闭命令,停止接受新连接,并继续维护当前请求,直到所有这些请求得到维护。 之后,旧的工作进程退出。

两者在 location 中,指定一个路径,其中使用 alias 做如下配置:

若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件

若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。alias是一个目录别名的定义,root则是最上层目录的定义,指的是 /var/www/image/img/ 。还有一个重要的区别是alias后面必须要 / 结束,否则会找不到文件,而root则可有可无。

另外对于index,含义如下

这样,当用户请求 / 地址时,Nginx 就会自动在 root 配置指令指定的文件系统目录下依次寻找 index.htm 和 index.html 这两个文件。如果 index.htm 文件存在,则直接发起“内部跳转”到 /index.htm 这个新的地址;而如果 index.htm 文件不存在,则继续检查 index.html 是否存在。如果存在,同样发起“内部跳转”到 /index.html ;如果 index.html 文件仍然不存在,则放弃处理权给 content 阶段的下一个模块。

参考地址1
参考地址2:B站

查看docker容器中nginx配置文件

html文件段告所在握埋明文件夹:/usr/share/nginx/html
文件名为50x.html index.html

配置文件所在文件夹:/etc/nginx
文件名为液改nginx.conf
内容:

日志存放路径:/var/log/nginx
文件名为access.log error.log

默认配置文件:/etc/nginx/conf.d
文件名为default.conf
内容:

nginx默认文件下载地址

Windows系统下载安装Nginx以及host文件的介绍

1. Nginx的简单介绍

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件(IMAP/POP3)代理服务器。Nginx占用内存少,并发能力强。

1.1 Nginx的安装

Nginx下载地址:http://nginx.org/en/download.html
这里选择了Windows的1.19.4版本

下载完成后解压压缩包
接下来测试一下是否能正常运行
双击nginx.exe打开或者根目录输入cmd打开输入命令,会发现有个窗口闪一下

1.启动命令 start nginx
2.重启命令 nginx -s reload (启动过才能输入重启命令)
3.停止命令 nginx -s stop
1
2
3
1
2
3

nginx启动后,会多出两个进程,其中占内存大的为主进程,主要为用户提供反向代理服务;其中占内存小的为守护进程,是为了主进程意外关闭的。所以在关闭Nginx时需要先结束守护进程才能关闭主进程。
测试是否能正常使用
浏览器输入localhost会出现欢银岩迎界面表示成功。

1.2 Nginx配置文件说明

Nginx服务器的基础配置和默认配置都在这里–>打开conf文件夹下的nginx.conf文件

下面简单说明一下配好芦置文件
########### 每个指令必须有分号结束。##################
user administrator administrators; #配置用户或者组,默认为nobody nobody。#worker_processes 2; #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址
error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debuginfonoticewarnerrorcritalertemerg
events {
accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
#use epoll; #事件驱动模型,selectpollkqueueepollresig/dev/polleventport
worker_connections 1024; #最大连接数,默认为512
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型,默认为text/plain
#access_log off; #取消服务日志
log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
access_log log/access.log myFormat; #combined为日志格式的默认值
sendfile on; #允友搏带许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块。

upstream mysvr {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #热备
}
error_page 404 https://www.baidu.com; #错误页
server {
keepalive_requests 120; #单连接请求上限次数。
listen 4545; #监听端口
server_name 127.0.0.1; #监听地址
location ~*^.+$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
#root path; #根目录
#index vv.txt; #设置默认页
proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表
deny 127.0.0.1; #拒绝的ip
allow 172.18.5.54; #允许的ip
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
http{}块下可以包含多个server{}块,一个反向代理就是一个server

server {
#监听的端口号
listen 80;
#监听的域名
server_name localhost;

#进行反向代理配置
location / {
#root关键字:代表磁盘地址
root html; #默认为跟目录下的html文件夹
#index关键字:默认的欢迎界面
index index.html index.htm;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.3 自己配置并测试

接下来自己写一个配置图片的代理服务器测试一下

首先在F盘创建一个文件夹img,其中保存一张图片 hello.png
在http{}块下配置图片的代理服务器
server {
listen 8080;
server_name 127.0.0.1;
location / {
root F:img;
}
}
1
2
3
4
5
6
7
1
2
3
4
5
6
7
之后浏览器输入http://127.0.0.1:8080/hello.png 就可以显示这张图片。

2. hosts文件的简单介绍

hosts文件是操作系统为了方便开发,在本地形成的域名与IP的映射文件,该文件只对本机有效。
位置:C:\Windows\System32\drivers\etc\hosts
示例:

#IP 域名 的映射关系,表示在浏览器输入hello.word.com就相当于输入例如127.0.0.1
127.0.0.1 hello.word.com
#可以配置多条映射
127.0.0.1 www.img.com
1
2
3
4
1
2
3
4
3. hosts文件和Nginx的配合使用实现域名的代理

3.1 如果想要通过http://hello.world.com域名访问localhost:8080的服务器

编辑hosts文件
127.0.0.1 hello.world.com
1
1
编辑nginx.conf配置文件
server {
listen 8080;
server_name hello.world.com;
location / {
root F:img;
}
}
1
2
3
4
5
6
7
1
2
3
4
5
6
7
浏览器输入hello.world.com:8080/hello.png测试

3.2 如果想要通过http://hello.world.com域名访问真实服务器地址http://localhost:8090

编辑hosts文件
127.0.0.1 hello.world.com
1
1
编辑nginx.conf配置文件
server {
listen 80;
server_name hello.world.com;
location / {
#代理真实的服务器地址
proxy_pass http://localhost:8090;
}
}
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
启动提前写好的端口号为8090的项目,启动Nginx
浏览器输入http://hello.world.com/,以为80端口可以省略,所以这里相当于http://hello.world.com:80/地址取访问真实的http://localhost:8090地址

打开CSDN APP,看更多技术内容
配置Nginx反向代理时配置hosts文件不起作用
原因:设备上的 hosts 出问题,电脑无法正常解析 解决方法:在网上找一个可用的hosts文件进行替换 hosts文件在/private/etc/hosts路径中,输入sudo vi /private/etc/hosts修改文件,将配置信息添加进去即可。 ...
继续访问
运维:nginx常用命令与问题解决(windows版)+ 安装stream模块
cmd 进入Nginx解压目录 执行以下命令 验证配置是否正确: nginx -t 查看Nginx的版本号: nginx -V 启动Nginx: start nginx 快速停止或关闭Nginx: nginx -s stop 正常停止或关闭 Nginx:nginx -s quit 配置文件修改重装载命令: nginx -s reload 测试nginx配置文件是否正确 nginx -t -c /nginx-1.20.1/conf/nginx.conf 测试nginx配置文件是否正确(简写) n
继续访问

最新发布 Windows中Nginx下载、安装、配置
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru 站点(俄文:Рамблер)开发的.它也是一种轻量级的Web服务器,可以作为独立的服务器部署网站(类似Tomcat)。它高性能和低消耗内存的结构受到很多大公司青睐,如淘宝网站架设。先下载直接去官网nginx.org分别有Linux和Windows两个版本。
继续访问

nginx-windows系统下的安装及使用
目录 一、Nginx简介 二、安装部署 三、优化配置 一、Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru 站点(俄文:Рамблер)开发的. 它也是一种轻量级的Web服务器,可以作为独立的服务器部署网站(类似Tomcat)。...
继续访问

利用hosts文件修改域名映射实现Nignx反向代理
windos下查看dns地址 ipconfig -all 域名解析的原理 域名解析是首先会在本机的localhost中查找域名解析规则,如果没有会通过本地配置的域名服务器地址进行域名解析。 下面我们通过配置localhost进行域名访问。 第一步:路径:C:\Windows\System32\drivers\etc ...
继续访问

windows下载安装Nginx
安装步骤 1、下载Nginx 下载地址:http://nginx.org/en/download.html (Nginx官网); 2、下载之后,解压到指定的目录,就可以看到以下的目录 3、控制台(CMD)切换到Nginx目录下,输入start nginx ,然后在浏览器页面输入localhost,出现如下界面则表示安装成功。默认监听80端口号。 4、nginx命令介绍 (1)start nginx 开启nginx服务 (2)nginx.exe -s stop 关闭nginx服务,快速停止nginx,
继续访问

【Nginx】Nginx在Windows、Linux环境下的下载安装详细步骤
文章目录Nginx下载安装Nginx-windows安装下载安装启动Nginx-Linux安装下载准备安装启动 Nginx下载安装 Nginx跨平台,在windows、Linux都可以安装 Nginx-windows安装 下载 官网下载:nginx: download 下载稳定版,不要下载测试版 安装 下载得到zip压缩包,解压、解压到任何地方都行, 解压后的目录: conf 配置文件,我们常用的就是conf中的配置文件 contrib 存放工具组件文件 docs 存放文档 documents
继续访问

nginx和hosts配置
nginx.conf(nginx/conf/nginx.conf) server { listen 80; //网络路径 server_name image.jt.com; location / { //本地路径 root D:/images; } } hosts(C:/Windows/System32/drivers/etc/hosts) //图片服务器配置 127.0.0.1 image.jt.com //前端服务器配置 127.0.0.1 www.
继续访问
本地host,nginx配置
本地host, 路径: c/windows/system32/drivers/etc/host ip 域名 127.0.0.1 image.jt.com 127.0.0.1 manage.jt.com 127.0.0.1 web.jt.com 配置文件 根目录/coof/nginx.conf http{ server { # 端口 listten:80; # 域名 server_name www.baidu.com; #文件位置 localhost / { #根目
继续访问
nginx config配置中内置变量host的坑
我们在配置nginx的配置时,一般是这样的。举例: server { listen 80; server_name mirrors.maqian.work; location / { proxy_pass http://mirrors.aliyun.com; proxy_redirect off; proxy_set_header Host $proxy_host; proxy_set_header X-Rea
继续访问

Windows下载安装Nginx
一、介绍 Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。 Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师lgor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。 Nginx相较于Apache\lighttpd具有占有内存少,稳定性高等
继续访问

host文件在哪里_3:基本配置文件详解
上文中,我们已经顺利的完成了Nginx的安装,从本文开始我们真正的进入到Nginx的配置和使用。我们通过rpm命令可以查看Nginx安装之后文件都放在了哪里(rpm 是linux的rpm包管理工具),命令如下:rpm -ql nginx我们可以看到,Nginx的主要配置都在/etc/nginx这个目录下,usr/share是我们的服务目录,前面的文章提到,Nginx是模块化的设计,在配置这块这个特...
继续访问
Nginx下载与安装-Win系统
Nginx入门: 1、在Windows系统下,下载、安装、启动Nginx
继续访问

Windows安装nginx并配置端口转发
Windows安装nginx;nginx配置端口转发
继续访问

Nginx_关于Ngxin和hosts
浏览器访问的URL会根据两种方式去进行域名解析: 1、hosts 2、DNS 如果本地配置了hosts就不会去访问DNS了 举例: 访问jisumall.com这个域名,会先到hosts中去地址解析,hosts中有配置的话,那么根据hosts中的配置进行解析。 hosts配置文件 我们这里hosts文件有配置,所以这个域名访问的地址会被转发到本地的127.0.0.1(默认80端口)。(如果hosts没有配置,那么就会到网上的DNS服务器上面找域名)。 由于本地开启了nginx,本地的80端口被nginx接
继续访问

热门推荐 nginx配置:server_name的作用
nginx的server_name最新详解
继续访问
Windows 11下安装 nginx
Windows 安装 nginx!!!
继续访问

nginx快速开始
windows环境下使用nginx 1、下载 http://nginx.org/en/download.html 下载稳定版本,以nginx/Windows-1.12.2为例,直接下载 nginx-1.12.2.zip 2、解压 下载后解压,目录如下: 3、启动nginx 有很多种方法启动nginx (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过 (2)打开cmd...
继续访问
Windows系统下载安装Nginx
下载 下载地址:http://nginx.org/en/download.html 本次下载的是1.18版本 下载后是一个压缩包。 安装 将压缩包解压即可。 启动 第一种:双击nginx.exe,小黑框一闪而过。 第二种:打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe 或者 start nginx ,回车即可 ...
继续访问
本地host文件和nginx映射的关系
假设客户端A--------》浏览器url请求域名--------》域名被host解析对应的IP--------》到对应IP的服务器--------》先被nginx反向代理拦截--------》找到nginx上一样域名(nginx.conf配置文件中server里的server_name)--------》对应的反向映射地址(nginx.conf配置文件中同左server里的proxy_pass ...
继续访问
nginx
windows

Nginx一看就会

Nginx("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:雀改百度、京东、新浪、网易、腾讯、 淘宝等。

1.1 WEB 服务器

Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php

等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高达 50000个并发连接数。

1.2 反向代理

1.正向代理,代理客户端,客户端需要配置代理

2.反向代理,代理服务端,客户端无感知

1.3 负载均衡

Nginx 的异步框架可以处理很大的并发请求,把这些并发请求 hold 住之后就可以分发给后台服务端(backend servers,也叫做服务池, 后面简称 backend)来做复杂的计算、处理和响应,这种模式的好处是相当多的:隐藏业务主机更安全,节约了公网 IP 地址,并且在业务量增加的时候可以方顷碧判便地扩容后台服务器。

这时候集群的概念产生了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服器,也就是我们所说的负载均衡。

1.4 动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。

Nginx官网

2.1 相关安装包

pcre-8.37.tar.gz openssl-1.0.1t.tar.gz zlib-1.2.8.tar.gz nginx-1.11.1.tar.gz

2.2 安装流程

2.1.1.安装 pcre 解压缩 pcre-xx.tar.gz 包

进入解压缩目录,执行./configure

如果提示,需要提前安装 gcc++,进入安装光盘目录的软件包(/media/CentOSXX/Package)执行

rpm -ivh libstdc+ devel-4.4.7-17.el6.x86_64.rpm

rpm -ivh gcc-c+ 4.4.7-17.el6.x86_64.rpm

./configure 完成后,回到 pcre 目录下执行 make,再执行 make install

2.2.2.安装 openssl

解压缩 openssl-xx.tar.gz 包。

进入解压缩目录,执行./config

make && make install

2.2.3.安装 zlib 解压缩 zlib-xx.tar.gz 包。

进入解压缩目录,执行./configure。

make && make install

2.2.4.安装 nginx

解压缩 nginx-xx.tar.gz 包。

进入解压缩目录,执行./configure。

make && make install

查看开放的端口号

firewall-cmd --list-all

设置开放的端口号

firewall-cmd --add-service=http –permanent

sudo firewall-cmd --add-port=80/tcp --permanent

重启防火墙

firewall-cmd –reload

2.3 Nginx 启动

命令

启动命令:在/usr/local/nginx/sbin 目录下执行 ./nginx

关闭命令: 在/usr/local/nginx/sbin 目录下执行 ./nginx -s stop

重新加载命令: 在/usr/local/nginx/sbin 目录下执行 ./nginx -s reload·

设置 nginx 为自启动服务

修改慧差 linux 启动脚本/etc/rc.d/rc

加入 :/usr/local/nginx/sbin/nginx

nginx 安装目录下,其默认的配置文件都放在conf 目录下,而主配置文件nginx.conf 也在其中,后续对 nginx 的使用基本上都是对此配置文件进行相应的修改。

根据上述文件,我们可以很明显的将 nginx.conf 配置文件分为三部分

第一部分:全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。

比如上面第一行配置的:worker_processes 1;

这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约。

第二部分:events 块

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。

上述例子就表示每个 work process 支持的最大连接数为 1024.

这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

第三部分:http 块

这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。

需要注意的是:http 块也可以包括 http 全局块、server 块。

http 全局块

http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

server 块

这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。

每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。

而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

全局 server 块

最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。

location 块

一个 server 块可以配置多个 location 块。

这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

案例配置如下:

location 指令说明

该指令用于匹配 URL,语法如下:

= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配

成功,就停止继续向下搜索并立即处理该请求。

~:用于表示 uri 包含正则表达式,并且区分大小写。

~*:用于表示 uri 包含正则表达式,并且不区分大小写。

^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字

符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location

块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

案例配置如下:

在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服务,而且 Nginx 提供了几种分配方式(策略):

轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

weight

weight 代表权重,默认为 1,权重越高被分配的客户端越多指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。

ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。

fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

动静分离从目前实现角度来讲大致分为两种:

1.一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;

2.另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。

通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用 Expires 来缓存),我这里设置 3d,表示在这 3 天之内访问这个 URL,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码304,如果有修改,则直接从服务器重新下载,返回状态码 200。

master-workers 的机制的好处

首先,对于每个 worker 进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,

同时在编程以及问题查找时,也会方便很多。其次,采用独立的进程,可以让互相之间不会

影响,一个进程退出后,其它进程还在工作,服务不会中断,master 进程则很快启动新的

worker 进程。当然,worker 进程的异常退出,肯定是程序有 bug 了,异常退出,会导致当

前 worker 上的所有请求失败,不过不会影响到所有请求,所以降低了风险。

需要设置多少个 worker

Nginx 同 redis 类似都采用了 io 多路复用机制,每个 worker 都是一个独立的进程,但每个进

程里只有一个主线程,通过异步非阻塞的方式来处理请求, 即使是千上万个请求也不在话

下。每个 worker 的线程可以把一个 cpu 的性能发挥到极致。所以 worker 数和服务器的 cpu

数相等是最为适宜的。设少了会浪费 cpu,设多了会造成 cpu 频繁切换上下文带来的损耗。

连接数 worker_connection

这个值是表示每个 worker 进程所能建立连接的最大值,所以,一个 nginx 能建立的最大连接数,应该是 worker_connections * worker_processes。当然,这里说的是最大连接数,对于HTTP 请 求 本 地 资 源 来 说 , 能 够 支 持 的 最 大 并 发 数 量 是 worker_connections * worker_processes,如果是支持 http1.1 的浏览器每次访问要占两个连接,所以普通的静态访问最大并发数是: worker_connections * worker_processes /2,而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections *

worker_processes/4。因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接。

注意:此部分属于高级技术,近几日会将下面的知识点补充完毕。

8.1 Keepalived+Nginx 高可用集群(主从模式)

8.2 Keepalived+Nginx 高可用集群(双主模式)

nginx配置https

我的服务器使用的系统是CentOS 6,因此直接使用yum安装nginx,其它系统以及版本可能有所差异。

step1, 先要安装nginx的yum源

执行完上面的命令后,我们使用命令 yum info nginx 查看一下Nginx 软件包信息.

step2, 安装nginx, 使用命令 yum install nginx 安装,等待安装完成。

检查nginx 版本 nginx -v

这个时候我们发现nginx已经安装成功了。

使用yum安装的nginx, 默认配置文件放在 /etc/nginx/nginx.conf ,使用命令枣桐 nginx -t 可以拿到配置文件的存放路径;这个命令用于测试配置文件语法是否准确无误。

使用vim查看配置内容如下:

看最后一行 include /etc/nginx/conf.d/*.conf; 便知nginx include 了 ./conf.d/ 下面的所有配置文件,因此我们也可以将配置文件放在 ./conf.d/ 目录下。

在配置Https 之前,我们需要准备好购买的SSL证书文件,我使用的是阿里云提供的免费证书。
1、将证书文件传到服务器,我使用的是 scp 命令将证书拷贝到服务器的 /etc/nginx/ssl_certs/ 目录下面拦岩返。现在该目录下有两个文件, xxx.pem 和 xxx.key 。

2、在创建配置文件 /etc/nginx/conf.d/ 目录下创建 xxx.conf 文件

将如下配置copy到配置文件中

最后重启 nginx, 使用 service nginx restart 命令重启。

访问 https://draw.lyan.me ,(PS: 我的服务器配置了dns解析),简饥即可发现https已经生效

分享到 :
相关推荐

香港服务器租用的共享带宽和独享带宽的差异是什么

香港服务器租用的共享带宽和独享带宽的差异是:1。香港服务器租用的共享带宽是一条线路上...

免费服务器租用有哪些(免费服务器租用有哪些平台)

免费服务器租用有哪些?现在搭建网站早已经不是一件新鲜事。有很多站长和企业都会搭建自己...

防御DDOS攻击的方法有哪些(防御ddos攻击的方法有哪些)

防御DDOS攻击的方法有:1。使用大带宽来抵御DDOS攻击。但租用带宽费用贵。可行性...

云服务器宕机了怎么办(云服务器宕机的原因)

也许有小伙伴疑惑了。服务器宕机理由好像有千千万个。为什么还有那么多人使用?服务器作为...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注