nginx的作用、配置、目录含义

nginx的作用

1、静态HTTP服务器

Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。

也可以将vue打包好的前端部署在html文件夹下面,用作前端服务器

XML 复制代码
server {
 
listen80; # 端口号
 
location / {
 
root /usr/share/nginx/html; # 静态文件路径
 
}
 
}

2、反向代理服务器

客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器

XML 复制代码
server {
 
listen80;
 
location / {
 
proxy_pass http://192.168.20.1:8080; # 应用服务器HTTP地址
 
}
 
}

3.负载均衡

将大量用户的请求分配给多台机器处理

XML 复制代码
upstream myapp {
 
server192.168.20.1:8080; # 应用服务器1
 
server192.168.20.2:8080; # 应用服务器2
 
}
 
server {
 
listen80;
 
location / {
 
proxy_pass http://myapp;
 
}
 
}

4.虚拟主机

有的网站访问量大,需要负载均衡。然而并不是所有网站都如此出色,有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。

例如将http://www.aaa.com和http://www.bbb.com两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。

XML 复制代码
server {
 listen80default_server;
 server_name _;
 return444; # 过滤其他域名的请求,返回444状态码
 }
 server {
 listen80;
 server_name www.aaa.com; # www.aaa.com域名
 location / {
 proxy_pass http://localhost:8080; # 对应端口号8080
 }
 }
server {
listen80;
server_name www.bbb.com; # www.bbb.com域名
location / {
proxy_pass http://localhost:8081; # 对应端口号8081
 }
 }

5.配置ssl证书

要在Nginx中配置SSL证书,你需要在Nginx配置文件中的相应server块内添加SSL证书和私钥的路径,并指定监听443端口(SSL默认端口)。这样就可以https请求地址了。

XML 复制代码
server {
    listen 443 ssl;
    server_name your_domain.com;
 
    ssl_certificate /path/to/your_certificate.pem; # 证书文件路径
    ssl_certificate_key /path/to/your_private.key; # 私钥文件路径
 
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
 
    location / {
        root /path/to/your/website;
        index index.html index.htm;
    }
 
    # 其他配置...
}

6.nginx配置请求超时时间

在Nginx中配置请求超时时间可以通过设置proxy_read_timeout指令来实现。这个指令定义了Nginx等待upstream服务器的响应的超时时间。60s默认

XML 复制代码
http {
    server {
        listen 80;
        server_name your_domain.com;
 
        location / {
            proxy_pass http://upstream_server;
            proxy_read_timeout 60s;
        }
    }
}

7.nginx配置上传文件大小

在Nginx中配置上传文件大小,以及配合客户端请求的超时时间配合使用,文件越大,超时时间设置越长

XML 复制代码
http {
    ...
 
    # 设置最大上传文件大小为 100M
    client_max_body_size 100M;
 
    # 设置读取客户端请求主体的超时时间为 30 秒
    client_body_timeout 30;
 
    ...
 
    server {
        ...
 
        # 对特定 location 设置更大的上传文件大小
        location /upload {
            client_max_body_size 200M;
        }
 
        ...
    }
}

Nginx目录结构

XML 复制代码
├── conf                             # Nginx所有配置文件的目录
│   ├── fastcgi.conf                 # fastcgi相关参数的配置文件
│   ├── fastcgi.conf.default         # fastcgi.conf的原始备份文件
│   ├── fastcgi_params               # fastcgi的参数文件
│   ├── fastcgi_params.default       
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types                   # 媒体类型
│   ├── mime.types.default
│   ├── nginx.conf                   # Nginx主配置文件
│   ├── nginx.conf.default
│   ├── scgi_params                  # scgi相关参数文件
│   ├── scgi_params.default  
│   ├── uwsgi_params                 # uwsgi相关参数文件
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp                     # fastcgi临时数据目录
├── html                             # Nginx默认站点目录
│   ├── 50x.html                     # 错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
│   └── index.html                   # 默认的首页文件
├── logs                             # Nginx日志目录
│   ├── access.log                   # 访问日志文件
│   ├── error.log                    # 错误日志文件
│   └── nginx.pid                    # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp                       # 临时目录
├── sbin                             # Nginx命令目录
│   └── nginx                        # Nginx的启动命令
├── scgi_temp                        # 临时目录
└── uwsgi_temp                       # 临时目录

平时用到最多的就是几个目录:

conf目录下的nginx.conf文件:以上的nginx作用都需要在此文件进行配置

sbin启动目录:启动命令:./nginx -s reload

html文件目录:vue打好的dist文件包 就是放在html目录下,以及静态文件

logs文件目录:nginx的日志文件,报错日志以及正常日志都记录

相关推荐
Avan_菜菜5 小时前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB1 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode3 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化