第4章 综合架构网站服务-nginx相关配置
4.6 nginx服务目录结构
/etc/logrotate.d/nginx
:保存日志切割文件目录
/etc/nginx/conf.d/default.conf
:默认网站配置文件。
/etc/nginx/mime.types
:媒体资源类型文件,指定nginx可以处理的静态资源类型。
/etc/nginx/nginx.conf
:nginx服务主配置文件。
/etc/sysconfig/nginx
:配置nginx命令路径和默认配置文件。
/usr/lib/systemd/system/nginx.service
:保存nginx的启动文件,可以被systemctl管理。
/usr/lib64/
:保存nginx服务的库文件。
/usr/libexec/
:保存nginx服务的库文件。
/usr/sbin/nginx
:保存nginx的命令文件。
-V
:显示nginx的版本服务和默认配置信息。
-t
:测试配置文件的语法文件的信息是否符合要求。
-s
:可以控制服务的运行状态,nginx -s stop/reload。
/usr/share/doc/nginx-1.18.0
:相关文档信息。
/usr/share/nginx/html
:nginx服务代码存放站点目录。
/var/cache/nginx
:缓存数据保存目录信息。
/var/log/nginx
:存放nginx的正常和错误日志目录
4.6.1 系统切割日志程序
logrotate
系统日志文件日志切割程序,可以调整程序默认日志文件大小,方便查看日志文件。
/etc/logrotate.conf
:查看logrotate配置信息。
weekly # 日志切割周期时间
rotate 4 # 最多保留几份日志文件
create # 再次创建新的日志信息
dateext # 日志切割后的文件以时间信息作为后缀
compress # 是否压缩切割后的日志文件
include /etc/logrotate.d # 单独加载额外的服务日志切割配置文件,如果有其他的日志切割需求可以在此目录内添加。
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/etc/logrotate.d/nginx
:nginx服务的切割日志配置文件。
/var/log/nginx/*.log {
daily # 每天进行切割
missingok # 忽略错误
rotate 52 # 保存52个切割周期
compress # 进行压缩
delaycompress # 延迟压缩
notifempty # 不切割空文件
create 640 nginx adm # 指定日志文件的权限和属主属组
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi # 如果切割完毕之后会平滑启动一次进程。
endscript
}
4.7 nginx服务配置介绍
master
进程:控制服务运行运行状态。
worker
进程:用于处理用户请求。
/etc/nginx/nginx.conf
:nginx主配置文件。
user nginx; # 指定nginx服务worker服务进程的管理用户。
worker_processes 1; # 指定worker进程的数量,并发访问量大的时候增加,小于等于服务器的总核心数。
error_log /var/log/nginx/error.log warn; # 错误日志的保存路径以及错误日志的级别,最。
pid /var/run/nginx.pid; # 敌营服务进程pid文件保存路径()master值
events {
worker_connections 1024; # 定义worker进程并发最大的连接数,进程数*最大连接数=最大连接数,与系统最大打开文件数有关,最大文件数与磁盘性能有关。
}
http {
include /etc/nginx/mime.types; # 包含加载其他的文件信息,媒体资源类型文件,可以指定nginx可以处理的资源静态资源,可以访问的静态资源会显示在屏幕上,不可以显示的资源会默认下载。
default_type application/octet-stream; # 定义默认识别文件类型,没有后缀名称的情况,默认是下载。
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # 定义服务访问日志格式
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; # 调用定义的日志格式和设置日志保存路径
sendfile on;
keepalive_timeout 65; # 定义超时时间,因为并发数量有限,设置连接超时时间,可以避免占用空闲资源。
include /etc/nginx/conf.d/*.conf; # 加载其他网站配置信息。
}
/etc/nginx/conf.d/default.conf
:nginx默认扩展配置文件。
server {
listen 80; # 定义某个网站的服务端口号码
server_name localhost; # 指定网站服务的域名信息。
location / {
root /usr/share/nginx/html/www; # 指定网站的站点目录
index index.html index.htm; # 指定网站首页文件
}
error_page 500 502 503 504 /50x.html; # 错误页面优雅显示
location = /50x.html {
root /usr/share/nginx/html;
}
}
系统打开文件数优化
服务程序应对高并发时可以最大程度处理用户需求,只有调整了最大的文件打开数量,worker进程的做大连接数量设置才有意义。
ulimit -a
:查看系统最大文件打开数量,关注open file
数量即可。
vi /etc/security/limits.conf
:设置系统最大的文件数量打开数,具体配置如下:
# 在文件的最后一行添加即可
* soft nofile 65535
* hard nofile 65535
# 使用sed
sed -ri '$a* soft nofile 65535\n* hard nofile 65535' /etc/security/limits.conf
4.8 nginx多虚拟主机访问
(1)
创建多个网站配置文件
/etc/nginx/conf.d/
在当前目下配置多个网站配置文件,具体需要调整的是配置文件内的网站指定的路径信息。
server {
listen 80; # 定义某个网站的服务端口号码
server_name localhost; # 指定网站服务的域名信息。
location / {
root /html/www; # 指定网站的站点目录
index index.html index.htm; # 指定网站首页文件
}
error_page 500 502 503 504 /50x.html; # 错误页面优雅显示
location = /50x.html {
root /usr/share/nginx/html;
}
}
(2)
创建站点目录并上传网站文件
mkdir /html/{www,bbs,blog} -p
:创建在指定的站点目录,并将网站资源上传至目录即可。
(3)
重启nginx服务
systemctl restart nginx
:重启nginx服务加载修改后的配置。
4.9 网站服务客户端访问方式
(1)基于域名方式访问:需要进行域名解析配置
(2)基于端口方式访问:需要进行端口配置,应用方向:负载均衡、反向解析