nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链

admin2024-07-07  4

一、nginx网络服务器:

1. nginx是开源的,是一款高性能,轻量级的web服务软件;稳定性高,而且版本迭代比较快;修复bug速度比较快,安全性高;消耗资源低,http的请求并发连接,单台服务器可以支持30000-50000个并发请求(系统资源全部分配给nginx);单个节点的nginx一般支持20000个并发请求
2.nginx的功能:

静态文件服务:静态页面,可以直接提供静态文件服务,html css jsp ,处理静态页面的响应速度快,效率很好

代理:正向代理,反向代理,可以实现负载均衡,高可用和故障转移。

动态处理:nginx不能直接处理动态请求,但是可以通过中间件(例如tomcat)把动态请求转发给后端服务器

支持加密的http及https

可以实现重定向

虚拟主机:一个nginx可以配置多个域名和站点。

nginx自带缓存

性能可扩张:处理能力可以随时调整

3.nginx的应用场景:

静态页面;转发动态请求;反向代理,负载均衡;缓存服务

二、nginx的安装:

1.配置安装包:nginx-1.22.0.tar.gz

2.先关闭防火墙和安全机制:

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

3.然后安装依赖环境;

yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel

4.创建程序用户:useradd -M -s /sbin/nologin nginx

5.安装包解压:tar -xf nginx-1.22.0.tar.gz

6.给解压包权限:chown nginx.nginx  nginx-1.22.0

7.进入cd  nginx-1.22.0目录

8.开始配置:

./configure --prefix=/usr/local/nginx \ #指定安装目录

--user=nginx \ #指定运行用户

--group=nginx \ #指定运行组

--with-http_ssl_module \ #开启对http的ssl加密支持

--with-http_v2_module \ #支持http2.0协议

--with-http_realip_module \ #允许nginx获取客户端的真实ip

--with-http_stub_status_module \ #启动了stud_status模块,可以获取nginx的访问和状态信息

--with-http_gzip_static_module \ #支持压缩文件内容 图片

--with-pcre \ #相当于动态库

--with-stream \ #开启tcp/udp的代理模块支持,也就是四层转发

--with-stream_ssl_module \ #支持四层转发的ssl加密

--with-stream_realip_module #nginx可以从四层转发的头部信息中获取客户端的真实ip

9.编译安装make  -j  4   &&   make  install

10.进入软件目录:cd  /usr/local

11.修改nginx权限:chown  nginx.nginx  nginx

12.ln  -s /usr/local/nginx/sbin/nginx  /usr/sbin

13.修改配置文件: vim /lib/systemd/system/nginx.service

[Unit]

Description=nginx - high performance web server

Documentation=http://nginx.org/en/docs/

After=network-online.target remote-fs.target nss-lookup.target

Wants=network-online.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/run/nginx.pid

#注意文件位置,如果不对 启动不了

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

#注意启动文件位置

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s TERM $MAINPID

[Install]

WantedBy=multi-user.target

14.进入nginx目录下:cd  /usr/local/nginx

conf:保存nginx的所有配置文件,其中nginx.conf是nginx的主配置文件

html:保存nginx的web文件,.html结尾的文件,图片

50x.html:是nginx默认的报错提示页面

logs:保存日志的目录,路径可以改

access.log:记录的是访问日志记录

error.log:记录报错日志403 404 500

sbin:放的是nginx的二进制启动脚本

15.在nginx目录下创建run目录:mkdir   run

     给run权限:chown  nginx.nginx  run

16.进入conf目录 :cd  conf

17.修改配置文件:vim    nginx.conf

     pid /usr/local/nginx/run/nginx.pid    #找到 pid开头的行进行修改  

18.改配置文件,一定要重启服务:systemctl daemon-reload

                              重新加载配置:systemctl start nginx.service

19.检测nginx配置文件:nginx  -t

20.查看版本:nginx  -v

三、nginx命令:
nginx -t:检测nginx配置文件以及配置文件语法是否正确

nginx -v:只查看版本

nginx -V:查看版本又查看nginx支持的配置模块

nginx -s:给nginx主程序发送信号,不能开启nginx服务

nginx -s信号类型:stop(关闭)、restart、reload(重新加载nginx,如果更改了配置文件,nginx-s reload无需重启服务)

四、vim  nginx.conf配置文件内容详解:

1.全局模块:worker_processes  1;:指定工作进程数,设置成服务器内核数的2倍(一般不超过8个,超过8个会降低性能);修改进程数在/etc/security/limtes.conf最后一行添加(* soft nproc 65535 能打开的进程最大数的软限制是65535;*hard  nproce 65535能打开的进程最大数是65535;* soft nofile 65535 进程打开文件的最大值也是65535;* hard nofile 65535进程最大数的硬限制65535)修改之后重启后才生效。

2.events模块:决定了nginx能够处理的连接数,连接数和worker_processes的数值相乘,默认是1024个(处理进程)

3.stream:四层代理模块

4.http模块:转发和处理http请求,主要处理静态页面,设置正向代理和反向代理,缓存,定义日志格式,重定向配置。(http里可以包含多个server模块,一个server模块就是一个主机)

include:文件扩展名于文件类型的映射表,nginx能够打开的文件和支持的文件类型。

default_type:默认支持的文件类型(.html .htm)

log_format:日志格式,记录了access.log,访问日志的格式,error.log也是一样的格式

access_log:默认的访问日志的存放路径

sendfile   on:支持文件发送和下载

tcp-nopush  on:默认就是异步非阻塞模式功能(每个客户可以同时向服务器发送信息,各不受影响)

keepalive_timesout  65:连接保持的时间,单位为秒

gzip  on:开启页面压缩功能

5.server模块(在events模块,是开启web服务的模块;http里可以包含多个server模块,一个servermo'kuai):listen 80:nginx的默认监听端口为80;server_name :配置站点的域名;charset  koi8-r:网页的默认字符集,改为charset utf-8默认支持中文;accesss_log:网页匹配的工作目录的地址和支持的打开页面的文件类型;

location / :(location模块)表示nginx配置文件的家目录,默认就是/

root  html:nginx工作目录的家目录,默认就是/usr/local/nginx/html;alias:也是匹配nginx的工作目录。

在server模块中可以有多个location模块

6.root和alias之间匹配的都是nginx工作目录,其区别:

root的匹配模式相当于拼接(在root的工作目录,访问的就是uri/下的内容,可以写作为location /xy101     root    /opt/test),可以写在server模块也可以写在http里,也可以写在location

alias匹配nginx工作目录的路径是绝对路径,只能写在http模块当中server模块的location模块里面,不能够使用重定向功能。

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第1张

 练习nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第2张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第3张

 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第4张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第5张

 五、实验

1.统计nginx的访问状态

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第6张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第7张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第8张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第9张

 2.基于密码的授权进行访问控制

先安装yum -y install httpd-tools  #httppasswd的工具

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第10张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第11张 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第12张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第13张 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第14张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第15张

3.基于客户端的访问控制 ,也就是根据ip地址来进行控制

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第16张 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第17张 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第18张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第19张

 4.基于域名的nginx主机

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第20张 vim  /etc/hosts 

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第21张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第22张  5.基于多个域名的nginx主机

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第23张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第24张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第25张nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第26张 6.基于ip地址的虚拟主机

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第27张

同时修改两个server模块的端口号 

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第28张nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第29张nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第30张 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第31张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第32张

7.基于端口实现多个虚拟主机

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第33张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第34张 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第35张

 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第36张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第37张

 8.多个配置文件:

conf.d:不是固定的,可以根据自己喜好起名

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第38张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第39张

 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第40张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第41张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第42张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第43张

 六、nginx的优化

1.隐藏版本号 

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第44张

2.修改用户及用户组

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第45张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第46张

 3.设置页面的缓存时间,主要是针对动态页面及图片缓存

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第47张

 4.日志分割:apache是自带日志分割的,按天来进行收集日志,但是nginx没有日志分割。

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第48张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第49张 

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第50张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第51张

 

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第52张

 

5. 更改进程数设置cpu绑定(重点)

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第53张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第54张 6.连接超时

 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第55张

 7.配置页面压缩

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第56张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第57张 

8.回收TIME_WAIT:time_wait是tcp连接当中的一种状态,出现在四次挥手之后;处于等待状态,双方不再发送数据。time_wait所占用的系统资源很小,完全可以忽略不记,但是太多了,就有一定的影响,进行连接断开,尽快的把time_wait状态连接进行回收。

统计当前系统的连接状态

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第58张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第59张 

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第60张 

七、 防盗链

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第61张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第62张 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第63张 

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第64张 nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第65张

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链,第66张 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!