做一个代码世界的设计师!🍺|

Jikefan

园龄:4年11个月粉丝:5关注:4

Nginx记录

配置文件

nginx.conf为Nginx服务器的核心配置文件。Nginx会根据配置文件中指定的配置项启动,默认配置文件为/usr/local/etc/nginx/nginx.conf。用户也可以自定义配置项,使用-c参数指定配置文件。

# 指定Nginx进程运行的用户
user nginx;
# Nginx工作的进程数量,默认自动配置,可配置成CPU数
worker_processes auto;
# Nginx的错误日志位置
error_log /var/log/nginx/error.log;
# Nginx进程运行后的进程id文件
pid /run/nginx.pid;
# 包含模块文件;*.conf表示所有以.conf结尾的文件
include /usr/share/nginx/modules/*.conf;
events { # events块开始
# 一个worker进程的最大连接数
worker_connections 1024;
} # events块结束
http { # http块开始
# Nginx日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# Nginx access_log日志文件位置
access_log /var/log/nginx/access.log main;
# 设置允许以sendfile方式传输文件
sendfile on;
# 防止网络阻塞
tcp_nopush on;
# 在TCP协议中,使用Nagle算法,把小包组成大包提高带宽利用率
tcp_nodelay on;
# 服务端对连接保持的时间,默认是65秒
keepalive_timeout 65;
# 设置size类型哈希表的最大值
types_hash_max_size 2048;
# 包含资源类型文件
include /etc/nginx/mime.types;
# 定义响应的默认MIME类型
default_type application/octet-stream;
# 引入其他的配置文件,文件名必须以.conf结尾
include /etc/nginx/conf.d/*.conf;
server {
# 监听的端口号,写法一
listen 80 default_server;
# 监听的端口号,写法二
listen [::]:80 default_server;
# 对外提供的虚拟主机名称,可以理解为域名;_表示无效域名之一,也可以使用"--"和"!@#"
server_name _;
# 请求的根目录位置
root /usr/share/nginx/html;
# 注释信息
# 引入其他的配置文件,文件名必须以.conf结尾
include /etc/nginx/default.d/*.conf;
location / {
}
# 定义将为指定错误显示的URI,返回状态码为404。一个URI值可以包含变量
error_page 404 /404.html;
location = /40XX.html {
}
# 定义将为指定错误显示的URI,返回状态码为500或者502、503、504。一个URI值可以包含变量
error_page 500 502 503 504 /50x.html;
location = /50x.html; # location块开始,精准匹配uri
} # location块结束
} # server块结束
# server块开始
server { # 监听端口,ssl表示允许此端口接收的所有连接在SSL模式下工作,http2表示配置端口接收HTTP2连接
listen 443 ssl http2 default_server;
# 监听端口的另一种写法
listen [::]:443 ssl http2 default_server;
# 对外提供的虚拟主机名称,可以理解为域名;_表示无效域名之一,也可以使用"--"和"!@#"
server_name _;
# 请求的根目录位置
root /usr/share/nginx/html;
# 指定带有PEM格式证书的文件位置
ssl_certificate "/etc/pki/nginx/server.crt";
# 指定带有PEM格式的密钥文件位置
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# 设置存储会话参数缓存的类型和大小。Shared表示所有工作进程之间共享的缓存
ssl_session_cache shared:SSL:1m;
# 指定客户端可以重用会话参数的时间
ssl_session_timeout 10m;
# 返回客户端支持的密码列表
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 引入其他配置文件,文件名必须以.conf结尾
include /etc/nginx/default.d/*.conf;
# location块开始
location / {
} # location块结束
# 定义将为指定错误显示的URI
error_page 404 /404.html;
# location块开始,精准匹配URI
location = /40XX.html {
} # location块结束
# 定义将为指定错误显示的URI
error_page 500 502 503 504 /50x.html;
# location块开始,精准匹配URI
location = /50x.html {
} # location块结束
} # server块结束
}

依赖库

PCRE和OpenSSL为Nginx默认依赖的库。除此之外,Nginx中还可以添加Zlib库,实现压缩功能。

1.PCRE库

PCRE(Perl Compatible Regular Expression)库是一组函数,这些函数使用与Perl 5相同的语法和语义来实现正则表达式模式匹配。在Nginx中,PCRE库与location块结合得比较紧密,可以用来匹配大量静态资源、配置防盗链、禁止爬虫等。

2. OpenSSL库

OpenSSL整个软件包大概可以分成三个部分:SSL协议库、应用程序以及密码算法库。作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥、证书封装管理功能以及SSL协议,并提供了丰富的应用程序。在Nginx中,其对应的模块为ngx_http_ssl_module和ngx_mail_ssl_module。常见的使用方式是基于ngx_http_ssl_module模块实现对站点的访问,示例如下。

server {
...
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
...
}

该配置示例基于ngx_http_ssl_module模块指定了cert.pem与cert.key的文件位置。ssl_ciphers用来选择加密套件。它们必须是OpenSSL能够识别的。且多个加密套件之间使用“!”分隔。“!”表示从算法列表中删除指定加密算法,如!MD5表示排除MD5算法。

3. Zlib库

Zlib是通用的压缩库,由Jean-loup Gailly和Mark Adler开发。其提供了一套完整的压缩和解压缩函数,并可以检测解压后的数据的完整性。Zlib同时支持读写gzip(.gz)格式的文件。在Nginx中,ngx_http_gzip_module和ngx_http_gzip_static_module模块使用到了Zlib库。它主要用于对http包内的内容或静态文件进行压缩,减少网络传输量。gzip on指令能直接开启压缩模式。

http {
...
gzip on;
gzip_comp_level 5;
gzip_min_length 20k;
...
}

该配置示例基于ngx_http_gzip_module模块开启了gzip压缩模式,并设置压缩的级别为5,原始文件小于20KB时不执行压缩操作。

本文作者:jikefan

本文链接:https://www.cnblogs.com/jikefan/articles/18469307

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Jikefan  阅读(4)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.