vlambda博客
学习文章列表

第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)基于端口方式访问:需要进行端口配置,应用方向:负载均衡、反向解析