nginx 默认配置文件详解与配置示例

# 配置 nginx 服务器的工作进程数,这个数值一般设置为服务器的 CPU核心数

worker_processes  1;

# 配置 nginx 服务器的事件相关设置,如工作进程的连接数限制、连接超时事件、文件描述符限制等
events {

    # 设置每个工作进程的最大并发连接数
    worker_connections  1024;
}

# 配置 http 服务相关的设置
http {

    # 引入 mime.types 配置文件,让 nginx 服务器能够正确识别和处理相应的文件类型。进入到该文件下,可以看到文件扩展名与相应的 MIME 类型之间的映射关系
    include       mime.types;

    # 指定了 MIME 的默认类型,该类型是通用的二进制流类型。当 nginx 无法匹配到文件的具体 MIME 类型时,就会将文件视为二进制文件进行处理
    default_type  application/octet-stream;

    # 启用或禁用文件的零拷贝传输

    sendfile        on;

    # 设置 keep-alive 连接的超时时间
    keepalive_timeout  65;

     # 定义一个 http 服务,可以配置监听的端口、虚拟主机、SSL 证书等

    server {
        listen       80;        # 监听的端口号
        server_name  localhost;        # 服务器的域名

        # 匹配请求的 url 路径,即 80 端口下的所有 url 请求。当在浏览器中输入 localhost:80 就会进入到 html/index.html 展示的页面中

        location / {
            root   html;        # 网站的根目录
            index  index.html index.htm;        # 默认首页文件
        }

        # 指定服务器返回以下下错误码时,会使用 /50x.html 进行请求重定向
        error_page   500 502 503 504  /50x.html;

        # 匹配 /50x.html 的请求,会在指定 html 文件目录下去寻找该 html 页面
        location = /50x.html {
            root   html;
        }
    }

}

名词解释

1、MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。在Web服务器中,MIME类型被用于告诉浏览器如何处理接收到的文件,包括将文件渲染显示或下载保存。

types {
    text/html                                        html htm shtml;
    text/css                                         css;
    text/xml                                         xml;
    ......
}

2、零拷贝传输。零拷贝传输是一种优化技术,它使得数据从一处移动到另一处时,不需要在操作系统的用户态和内核态之间进行数据的复制。通过使用零拷贝传输,数据可以直接从磁盘或其他存储设备读取到网络套接字,或者从一个套接字写入到磁盘或其他存储设备,而无需经过额外的复制操作。避免了将文件数据先拷贝到用户空间再发送的步骤,提高了文件传输的效率。

注意事项

1、对于 include 引用的额外配置文件时,此时配置的文件目录是以 nginx.conf 文件所处的文件目录作为基准。例如,在 nginx.conf 通过 include 引入额外配置文件 xx.conf(include conf.d/*.conf),则表示会引入 conf.d 目录下所有以 .conf 作为后缀名的文件,文件目录格式如下:

nginx

        --conf

                --conf.d

                        --xx.conf

                --nginx.conf

        --dist

        --nginx.exe

2、对于 root 指定的根目录,则是以 nginx.exe 文件所处的文件目录作为基准。例如,在 xx.conf 指定 dist 文件夹作为网页的根目录时,不能以 xx.conf 所处文件位置作为基础进行文件路径的查找。当在 xx.conf 中指定文件的根目录时,仍然以 root dist 格式进行编写。

本地启用 nginx 服务代理示例

1、进入前端项目,使用 npm run build 将项目进行打包。将打包生成的 dist 文件夹移动到 nginx.exe 同级目录中。

2、修改 nginx.conf 配置文件,将对应位置进行修改:

        location / {
            root   dist;        # 网站的根目录
            index  index.html index.htm;        # 默认首页文件
        }

3、也可以将 80 端口换成其他不冲突的端口进行访问(例如常用的 8080),如果要进入到前端入口界面中,则输入 localhost:80 ,即可进入到前端主界面中。

4、如果是前后端分离项目,此时请求后端接口还是不行的,还需要配置代理路径,同时还要解决跨域问题。

5、配置服务代理路径。以 /user 开头的请求路径就会以 http://127.0.0.1:8081/user 去请求后端服务接口。例如当我想要进行用户登录时,前端发送请求 http://127.0.0.1:80/user/login 去请求后端服务接口,此时发现是以 /user 进行开头,就会被代理实际转发到 http://127.0.0.1:8081/user/login 去请求后端接口,这与后端服务接口实际地址一致。

    location /user{
        ###start 解决跨域问题####
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers'
            'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
        ###end 解决跨域问题###

        # 服务代理路径
        proxy_pass http://127.0.0.1:8081/user;
        proxy_read_timeout 1800;
    }

对于 nginx 默认配置文件 nginx.vonf 去除掉注解部分其实仅仅包含以上内容,实际的内容并不多。理解以上步骤,即可在本地搭建 nginx 服务器去代理前端服务。

再修改命令nginx配置文件后,可以使用 nginx -t 命令去测试配置文件的更改是否正确,然后使用 nginx -s reload 命令指示 nginx 重新加载配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值