Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

I am WWW

Baidu
sogou

(5)修改nginx.conf

location / {
	root   /root/html;
	index  index.html index.htm;
}

(6)测试启动访问

页面会报403拒绝访问的错误

(7)分析原因

因为当前用户没有访问/root/html目录的权限

(8)将文件创建到 /home/www/html/index.html,修改配置

location / {
	root   /home/www/html;
	index  index.html index.htm;
}

(9)再次测试启动访问

能正常访问。

work process指令

master_process:用来指定是否开启工作进程。

语法 master_process on|off;
默认值 master_process on;
位置 全局块

worker_processes:用于配置Nginx生成工作进程的数量,这个是Nginx服务器实现并发处理服务的关键所在。理论上来说workder process的值越大,可以支持的并发处理量也越多,但事实上这个值的设定是需要受到来自服务器自身的限制,建议将该值和服务器CPU的内核数保存一致。

语法 worker_processes num/auto;
默认值 1
位置 全局块

如果将worker_processes设置成2,则会看到如下内容:

nginx指令

其他指令

daemon:设定Nginx是否以守护进程的方式启动。

守护式进程是linux后台执行的一种服务进程,特点是独立于控制终端,不会随着终端关闭而停止。

语法 daemon on|off;
默认值 daemon on;
位置 全局块

pid:用来配置Nginx当前master进程的进程号ID存储的文件路径。

语法 pid file;
默认值 默认为:/usr/local/nginx/logs/nginx.pid
位置 全局块

该属性可以通过./configure --pid-path=PATH来指定

error_log:用来配置Nginx的错误日志存放路径

语法 include file;
默认值
位置 any

events块

(1)accept_mutex:用来设置Nginx网络连接序列化

语法 error_log file [日志级别];
默认值 error_log logs/error.log error;
位置 全局块、httpserverlocation

该属性可以通过./configure --error-log-path=PATH来指定

其中日志级别的值有:debug|info|notice|warn|error|crit|alert|emerg,翻译过来为试|信息|通知|警告|错误|临界|警报|紧急,这块建议大家设置的时候不要设置成info以下的等级,因为会带来大量的磁盘I/O消耗,影响Nginx的性能。

(5)include:用来引入其他配置文件,使Nginx的配置更加灵活

语法 accept_mutex on|off;
默认值 accept_mutex on;
位置 events

这个配置主要可以用来解决常说的"惊群"问题。大致意思是在某一个时刻,客户端发来一个请求连接,Nginx后台是以多进程的工作模式,也就是说有多个worker进程会被同时唤醒,但是最终只会有一个进程可以获取到连接,如果每次唤醒的进程数目太多,就会影响Nginx的整体性能。如果将上述值设置为on(开启状态),将会对多个Nginx进程接收连接进行序列号,一个个来唤醒接收,就防止了多个进程对连接的争抢。

(2)multi_accept:用来设置是否允许同时接收多个网络连接

语法 multi_accept on|off;
默认值 multi_accept off;
位置 events

如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接。否则,一个工作进程可以同时接受所有的新连接

(3)worker_connections:用来配置单个worker进程最大的连接数

语法 worker_connections number;
默认值 worker_commections 512;
位置 events


这里的连接数不仅仅包括和前端用户建立的连接数,而是包括所有可能的连接数。另外,number值不能大于操作系统支持打开的最大文件句柄数量。

(4)use:用来设置Nginx服务器选择哪种事件驱动来处理网络消息。

语法 use method;
默认值 根据操作系统定
位置 events

注意:此处所选择事件处理模型是Nginx优化部分的一个重要内容,method的可选值有select/poll/epoll/kqueue等,之前在准备centos环境的时候,我们强调过要使用linux内核在2.6以上,就是为了能使用epoll函数来优化Nginx。

另外这些值的选择,我们也可以在编译的时候使用

--with-select_module、--without-select_module、

--with-poll_module、--without-poll_module来设置是否需要将对应的事件驱动模块编译到Nginx的内核。

events指令配置实例

打开Nginx的配置文件 nginx.conf,添加如下配置

events{
	accept_mutex on;
	multi_accept on;
	worker_commections 1024;
	use epoll;
}

启动测试

./nginx -t
./nginx -s reload

http块

定义MIME-Type

我们都知道浏览器中可以显示的内容有HTML、XML、GIF等种类繁多的文件、媒体等资源,浏览器为了区分这些资源,就需要使用MIME Type。所以说MIME Type是网络资源的媒体类型。Nginx作为web服务器,也需要能够识别前端请求的资源类型。

在Nginx的配置文件中,默认有两行配置

include mime.types;
default_type application/octet-stream;

(1)default_type:用来配置Nginx响应前端请求默认的MIME类型。

语法 default_type mime-type;
默认值 default_type text/plain
位置 httpserverlocation

在default_type之前还有一句include mime.types,include之前我们已经介绍过,相当于把mime.types文件中MIMT类型与相关类型文件的文件后缀名的对应关系加入到当前的配置文件中。

举例来说明:

有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串,如果逻辑非常简单或者干脆是固定的字符串,那么可以使用nginx快速实现,这样就不用编写程序响应请求了,可以减少服务器资源占用并且响应性能非常快。

如何实现:

location /get_text {
	#这里也可以设置成text/plain
    default_type text/html;
    return 200 "This is nginx's text";
}
location /get_json{
    default_type application/json;
    return 200 '{"name":"TOM","age":18}';
}

自定义服务日志

Nginx中日志的类型分access.log、error.log。

access.log:用来记录用户所有的访问请求。

error.log:记录nginx本身运行时的错误信息,不会记录用户的访问请求。

Nginx服务器支持对服务日志的格式、大小、输出等进行设置,需要使用到两个指令,分别是access_log和log_format指令。

(1)access_log:用来设置用户访问日志的相关属性。

语法 access_log path[format[buffer=size]]
默认值 access_log logs/access.log combined;
位置 http, server, location

(2)log_format:用来指定日志的输出格式。

语法 log_format name [escape=default|json|none] string....;
默认值 log_format combined "...";
位置 http

其他配置指令

(1)sendfile:用来设置Nginx服务器是否使用sendfile()传输文件,该属性可以大大提高Nginx处理静态资源的性能

语法 sendfile on|off
默认值 sendfile off;
位置 httpserverlocation

(2)keepalive_timeout:用来设置长连接的超时时间。

为什么要使用keepalive?

我们都知道HTTP是一种无状态协议,客户端向服务端发送一个TCP请求,服务端响应完毕后断开连接。

如何客户端向服务端发送多个请求,每个请求都需要重新创建一次连接,效率相对来说比较多,使用keepalive模式,可以告诉服务器端在处理完一个请求后保持这个TCP连接的打开状态,若接收到来自这个客户端的其他请求,服务端就会利用这个未被关闭的连接,而不需要重新创建一个新连接,提升效率,但是这个连接也不能一直保持,这样的话,连接如果过多,也会是服务端的性能下降,这个时候就需要我们进行设置其的超时时间。

语法 keepalive_timeout time;
默认值 keepalive_timeout 75s;
位置 httpserverlocation

(3)keepalive_requests:用来设置一个keep-alive连接使用的次数。

语法 keepalive_requests number;
默认值 keepalive_requests 100;
位置 httpserverlocation

server块和location块

server块和location块都是我们要重点讲解和学习的内容,因为我们后面会对Nginx的功能进行详细讲解,所以这块内容就放到静态资源部署的地方给大家详细说明。

本节我们主要来认识下Nginx默认给的nginx.conf中的相关内容,以及server块与location块在使用的时候需要注意的一些内容。

server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
       
        error_page   500 502 503 504 404  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

将本页面链接http://www.itcast.cn/news/20210716/1458419603.shtml发送给QQ:435946716,免费获取上面课程全套视频、笔记和源码。



猜你喜欢:

Nginx视频教程下载

nginx配置文件详解

Java中final关键字如何使用?

Java中volatile关键字有什么作用?

大阳城app官网入口java开发培训课程

最新资讯

相关阅读

0 分享到:

Java高级软件工程师课程javaee

Python大数据课程python

web前端课程全薪升级V8.5web

AI+设计课程design

大数据培训班cloud

软件测试培训课程test

c

新媒体运营培训课程netmarket

产品经理培训课程pm

linux培训班Linux

影视制作培训movies

智能机器人开发robot

电商视觉设计uids

人工智能培训课程Python

集成电路应用开发(嵌入式)培训课程jdbc

北京校区

    在线咨询 我要报名
    和我们在线交谈!
    Baidu
    sogou