nginx的软件包的安装:

rpm -qc nginx 可以看到软件包安装后的配置文件装在哪里

1.在 /etc/yum.repos.d/ 目录下创建 nginx.repo:

vim  /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/rhel/8/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

# 生成缓存
dnf makecache

# 安装 nginx
dnf install -y nginx

# 启动服务
systemctl start nginx

# 设置开机自启
systemctl enable nginx

# 检查运行状态与监听端口
systemctl status nginx
ss -tlnp | grep :80

与nginx相关的重要的配置文件

#查看cpu的个数
lscpu
#查看服务的进程数
pa aux | grep nginx
worker: 子进程  master: 主进程
##关于公网ip:就是路由出口,访问其他网站时的标识

nginx.conf配置文件中的重要参数及其含义:

全局模块:
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /run/nginx.pid;
从配置文件最顶端到 events 块之前的内容。它负责控制 Nginx 服务器整体运行的底层环境与进程行为。

user nginx;

含义:指定运行 Nginx Worker 子进程的系统用户为 nginx。

意义:出于安全考虑,Master 主进程通常由 root 运行以绑定 80/443 等低位端口,但处理请求的 Worker 子进程必须降权为低权限的 nginx 用户运行,避免被黑客通过 Web 漏洞入侵后直接拿到服务器最高控制权。

worker_processes auto;

含义:Nginx 启动的工作进程数量。auto 会自动检测并匹配服务器的 CPU 核心数。

意义:一个 Worker 绑定一个 CPU 核心,能够最大化利用多核性能并减少 CPU 上下文切换的开销。

error_log /var/log/nginx/error.log notice;

含义:指定全局错误日志的保存路径以及日志记录级别(这里是 notice 级别)。

pid /run/nginx.pid;

含义:指定存放 Master 进程 ID(PID)的文件路径。systemctl 管理服务停止或重载配置时需要读取该文件找到主进程。

events模块:
events {
    worker_connections  1024;
}
含义:每个 Worker 进程所允许同时处理的最大客户端连接数。
http模块:
http {
    include       /etc/nginx/mime.types;
    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;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

由 http { ... } 包裹,是 Nginx 最核心的配置板块,所有关于 HTTP/HTTPS 协议处理、网站虚拟主机、反向代理、缓存、日志等规则 都在这里定义。

include /etc/nginx/mime.types; 与 default_type application/octet-stream;

含义:引入媒体类型映射表;如果请求的文件格式在表中找不到,默认当作通用的二进制流(下载文件)处理。

意义:让浏览器能正确识别文件是 HTML、CSS、JS 还是图片,从而正确渲染网页而不是弹出下载窗口。

log_format main ... 与 access_log /var/log/nginx/access.log main;

含义:定义访问日志的记录格式并命名为 main,然后将网站的所有访问流量按该格式写入 /var/log/nginx/access.log。

关键字段:

$remote_addr:客户端的真实 IP。

$time_local:请求到达的本地时间。

$request:请求的动作(如 GET /index.html HTTP/1.1)。

$status:HTTP 状态码(如 200、404、502)。

$body_bytes_sent:发送给客户端的响应体大小。

$http_user_agent:客户端浏览器或设备的标识信息。

sendfile on;

含义:开启高效文件传输模式(零拷贝技术)。

意义:传统读取文件需要“磁盘 -> 内核缓冲区 -> 用户缓冲区 -> 网络套接字”,开启后数据直接在内核空间由磁盘送入网卡,大幅提升静态文件(图片、视频、下载包)的传输效率并降低 CPU 占用。

keepalive_timeout 65;

含义:HTTP 长连接保持超时时间为 65 秒。

意义:客户端(浏览器)请求完一个资源后,TCP 连接先不立即断开,65 秒内如果还有新的资源请求可以直接复用该通道,避免频繁进行 TCP 三次握手。

include /etc/nginx/conf.d/*.conf;

含义:模块化拆分。将 /etc/nginx/conf.d/ 目录下所有以 .conf 结尾的配置文件引入到当前位置。

意义:后续添加虚拟主机(配置不同的域名、端口、反向代理或自定义网站)时,不需要把所有 server { ... } 规则硬塞在主配置文件里,只需在该目录下单独写独立的 .conf 文件即可,便于管理和维护

使用nginx创建一个网页页面:

 vim /etc/nginx/conf.d/game.conf
server {
    listen 80;
    server_name www.game.com;

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

写完.conf文件进行语法检测:

nginx-t

由于并没有购买域名,此域名只能通过/etc/hosts文件里面配置相应IP地址和相应域名

注意修改完配置文件之前为避免selinux上下文确保seliux处于关闭状态

getenforce

setenforce 0

永久关闭seLinux的方法:

直接修改配置文件

[root@linuxedu ~]# vim /etc/selinux/config

reboot重启系统即可。

使用多端口进行访问不同的业务页面:

 vim /etc/nginx/conf.d/game.conf
server {
    listen 81;
    server_name www.game.com;

    location / {
        root /code/****;
        index index.html index.htm;
    }
}
nginx -t
systemctl restart nginx

使用多域名配置多个业务:

##第一个业务
 vim /etc/nginx/conf.d/game.conf
server {
    listen 80;
    server_name www.flygame.com;

    location / {
        root /code/****;
        index index.html index.htm;
    }
}
nginx -t
systemctl restart nginx

##第二个业务:
 vim /etc/nginx/conf.d/game.conf
server {
    listen 80;
    server_name www.fishgame.com;

    location / {
        root /code/****;
        index index.html index.htm;
    }
}
nginx -t
systemctl restart nginx

location的路径匹配:

server {
        listen 81;
        server_name www.game.com;

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

        location /download1 {
        root /packages;
        autoindex on;
        }
###匹配的是/packages/download1下面的文件
        location /download2 {
        alias /packages;
        autoindex on;
        }
#####匹配的是/packages下面的文件

}

!!注意windows也要在/etc/hosts这个文件下面进行域名解析
C:\Windows\System32\drivers\etc\hosts
在浏览器中进行缓存的清理:shift+ctrl+N

用户名登陆验证限制