博客
关于我
nginx 常用配置记录
阅读量:799 次
发布时间:2023-02-15

本文共 2342 字,大约阅读时间需要 7 分钟。

Nginx HTTP模块配置参考

Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3 代理服务器,常用于负载均衡和网页缓存。以下是关于 Nginx HTTP 模块的主要配置说明。


1. server 模块

server 模块是 HTTP 模块的核心模块,也是常用到的模块之一。它用于定义一个虚拟主机,用于处理 HTTP 请求。

server_name 指令

server_name 用于指定虚拟主机的 IP 地址或域名,多个域名之间用空格分隔。

server_name localhost www.example.com;

当多个虚拟主机监听同一个端口时,Nginx 会根据请求的 Host 头字段选择合适的 server_name 配置。匹配规则如下:

  • 完全匹配的 server_name
  • 后缀匹配:*.example.com
  • 前缀匹配:www.example.*
  • 正则匹配:~\w+.com
  • listen 指令中配置的 default 或 default_server 的 server
  • listen 指令中第一个匹配的 server
  • 如果只有一个 server 配置且 listen 端口未指定,默认可以不填 server_name。

    root 和 alias 的区别

    root 和 alias 都用于定义请求路径的根目录,但映射的方式不同。

    location /request_path/image/ {    root /local_path/image/;    alias /local_path/image/;}
    • root:将请求路径相对于 root 目录进行拼接。例如,访问 /request_path/image/a/b.jpg 会映射到 /local_path/image/request_path/image/a/b.jpg。
    • alias:直接将请求路径替换为 alias 目录。例如,访问 /request_path/image/a/b.jpg 会映射到 /local_path/image/a/b.jpg。

    2. location 模块

    location 模块是最复杂的模块之一,用于根据 URL 路径匹配配置。它支持正则表达式和条件判断。

    常见配置示例

  • 匹配所有请求:
  • location / {    root /home/www/html;    index index.php index.html index.htm;}
    1. 匹配 .php 结尾的请求:
    2. location ~\.php$ {    # 配置针对 .php 请求的处理}
      1. 反向代理:
      2. location /api/ {    proxy_pass http://backend_server;    proxy_redirect off;    proxy_set_header Host $host;    proxy_set_header X-Real-IP $remote_addr;}
        1. Vue/React 路由:
        2. location / {    alias static/;    try_files $uri $uri/ /index.html;}

          location 匹配规则

          匹配规则的优先级顺序如下:

        3. 精确匹配(使用 = 类型)
        4. 前缀匹配(使用 ^~ 类型)
        5. 正则匹配(使用 ~ 和 ~* 类型)
        6. 普通字符串匹配(使用 /uri)
        7. 通用匹配(使用 /)
        8. 特殊匹配(使用 @url)

        9. 3. upstream 模块

          upstream 模块用于定义后端服务器,支持简单的负载均衡(轮循调度和客户端 IP)。

          常见配置示例

          upstream backend {    server backend1.example.com weight=5;    server backend2.example.com:8080;    server unix:/tmp/backend3;}location / {    proxy_pass http://backend;}

          负载均衡算法

        10. weight:为每个服务器分配权重,权重越大,分配的概率越高。
        11. ip_hash:根据客户端 IP 分配服务器,确保同一 IP 的请求始终分配到同一服务器。

        12. 4. include 模块

          include 模块用于将部分配置文件包含进来,提高配置的灵活性。

          http {    include mime.types;    include vhost/*.conf;}

          常见配置

        13. mime.types:文件扩展名与 MIME 类型的映射文件,默认配置如下:
        14. types {    application/javascript;    application/json;    text/css;    text/plain;}default_type application/octet-stream;
          1. vhost/*.conf:将虚拟主机配置文件包含进来,支持单个虚拟主机或多个虚拟主机。

          2. 5. gzip 模块

            gzip 模块用于对静态资源进行压缩,支持客户端浏览器。

            常见配置示例

            gzip on;gzip_disable "MSIE [1-6]\.(?!.*SV1)";gzip_http_version 1.0;gzip_types application/javascript application/json text/css text/plain;gzip_comp_level 5;

            通过以上配置示例,Nginx 可以实现 HTTP 服务器的高效配置和管理。

    转载地址:http://olcfk.baihongyu.com/

    你可能感兴趣的文章
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    Objective-C实现A-Star算法(附完整源码)
    查看>>
    Objective-C实现area under curve曲线下面积算法(附完整源码)
    查看>>
    Objective-C实现armstrong numbers阿姆斯壮数算法(附完整源码)
    查看>>
    Objective-C实现atoi函数功能(附完整源码)
    查看>>
    Objective-C实现base64加密和base64解密算法(附完整源码)
    查看>>
    Objective-C实现base85 编码算法(附完整源码)
    查看>>
    Objective-C实现basic graphs基本图算法(附完整源码)
    查看>>
    Objective-C实现BCC校验计算(附完整源码)
    查看>>
    Objective-C实现bead sort珠排序算法(附完整源码)
    查看>>
    Objective-C实现BeadSort珠排序算法(附完整源码)
    查看>>
    Objective-C实现bellman ford贝尔曼福特算法(附完整源码)
    查看>>
    Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现BellmanFord贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现BF算法 (附完整源码)
    查看>>
    Objective-C实现binary exponentiation二进制幂运算算法(附完整源码)
    查看>>
    Objective-C实现binary tree traversal二叉树遍历算法(附完整源码)
    查看>>
    Objective-C实现binomial coefficient二项式系数算法(附完整源码)
    查看>>
    Objective-C实现BitMap算法(附完整源码)
    查看>>