博客
关于我
nginx 常用配置记录
阅读量:790 次
发布时间: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/

    你可能感兴趣的文章
    Mysql缓存调优的基本知识(附Demo)
    查看>>
    mysql自增id超大问题查询
    查看>>
    MySQL设置远程连接
    查看>>
    mysql还有哪些自带的函数呢?别到处找了,看这个就够了。
    查看>>
    mysql进阶 with-as 性能调优
    查看>>
    Mysql连接时报时区错误
    查看>>
    MYSQL遇到Deadlock found when trying to get lock,解决方案
    查看>>
    mysql部署错误
    查看>>
    MySQL锁与脏读、不可重复读、幻读详解
    查看>>
    Mysql锁机制,行锁表锁
    查看>>
    MySQL集群解决方案(4):负载均衡
    查看>>
    mysql面试题学校三表查询_mysql三表查询分组后取每组最大值,mysql面试题。
    查看>>
    Mysql面试题精选
    查看>>
    MySQL面试题集锦
    查看>>
    mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
    查看>>
    mysql驱动、durid、mybatis之间的关系
    查看>>
    mysql驱动支持中文_mysql 驱动包-Go语言中文社区
    查看>>
    MySQL高可用切换_(5.9)mysql高可用系列——正常主从切换测试
    查看>>
    MySQL高可用解决方案详解
    查看>>
    MYSQL高可用集群MHA架构
    查看>>