Nginx企业级负载均衡:技术详解系列(10)—— Nginx核心配置详解(HTTP配置块)

在这里插入图片描述

你好,我是赵兴晨,97年文科程序员。

今天咱们聊聊Nginx核心配置中的HTTP配置块,这个配置块在我们的日常使用中极为常见,它的重要性不言而喻。

HTTP配置块在Nginx的配置架构中占据着核心地位,它直接关系到服务器如何处理HTTP请求和响应。通过精心设计HTTP模块,我们可以显著提升Nginx服务器的性能,加速网站的访问速度,从而优化用户体验。
现在,就让我们开始探索HTTP配置块吧!

HTTP协议相关的配置结构

http {
  # 各 server 的公共配置
  ...

  server {
      # 每个 server 用于定义一个虚拟主机,
      # 第一个 server 为默认虚拟服务器
      ...

      # 虚拟主机名
      server_name example.com www.example.com;

      # 主目录
      root /path/to/your/root/directory;

      # 路径别名
      alias /path/to/your/alias/directory;

      location [OPERATOR] URL {
          # 指定 URL 的特性
          ...
      }
  }

  server {
      ...
  }
}

HTTP协议配置说明

1、文件类型与默认MIME类型

  • Nginx使用mime.types文件来识别不同的文件扩展名及其对应的MIME类型。
  • 未在mime.types中定义的文件类型将使用default_type指定的MIME类型。

示例:
如果你的网站提供自定义文件格式,比如.myapp,你可以在mime.types文件中添加 .myapp application/myapp,然后在Nginx中使用 include mime.types; 来启用这些自定义类型。

2、日志记录

  • 日志是服务器运行的重要记录,可以帮助我们监控流量和排查问题。
  • log_format 定义了日志的格式,而 access_log 指定了日志文件的存放路径和使用的格式。

示例:

log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
            '$status $body_bytes_sent "$http_referer" '
            '"$http_user_agent"';
access_log /var/log/nginx/access.log main;

3、文件传输优化

  • sendfile 指令用于优化文件传输,减少CPU利用率。
  • tcp_nopush 和 tcp_nodelay 用于调整 TCP 传输行为,减少网络延迟,提高性能。

示例:
默认情况下,sendfile是关闭的,你可以在HTTP块中添加 sendfile on; 来启用。

4、会话保持时间

  • keeplived_timeout 设置客户端与服务器之间连接的保持时间,允许一定时间内的多个请求复用同一个链接。

示例:
如果你希望减少因 keeplived 连接产生的服务器负载,可以设置较短的超时时间。

keepalive_timeout 5;

5、压缩传输

gzip 压缩可以减少传输的数据量,加快页面加载速度,但可能会增加服务器的CPU负载。

示例:
启动gzip压缩可以减少传输的数据量,配置如下

gzip on;
gzip_types text/plain text/css text/xml application/json;

6、监听与服务器名称

listen 指令让服务器监听指定的端口,而server_name定义了服务器的名称,可以用与虚拟主机的配置。

示例:
为特定域名配置服务器并指定默认服务器

server {
    listen 80;
    server_name mywebsite.com *.mywebsite.com;
    default_server;
    ...
}

7、网站根目录与默认首页

root 指定了网站内容的根目录,而index定义了默认首页文件,当请求网站根目录时提供。

示例:
设置网站根目录和默认首页

location / {
    root /var/www/mywebsite;
    index index.php index.html index.htm;
}

8、错误页面定义

error_page允许我们为特定的HTTP状态码定义自定义的错误页面,提升用户体验。

示例:
自定义404 和 500 错误页面

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
}

9、安全性配置

使用正则表达式匹配 .ht 和 passwd.html 等敏感文件,并拒绝访问,增强了服务器的安全性。

示例:

location ~ /\.ht {
    deny all;
}
location ~ /passwd.html {
    deny all;
}

10、HTTPS服务器配置

配置HTTPS可以参考我的另一篇文章《Nginx HTTPS配置:一篇文章解决所有痛点》

示例:
配置HTTPS服务器,启用SSL加密

server {
    listen 443 ssl;
    server_name mywebsite.com;
    ssl_certificate /etc/ssl/certs/mywebsite.com.crt;
    ssl_certificate_key /etc/ssl/private/mywebsite.com.key;
    ...
}

OK,今天的分享到这里就结束啦,我们从文件类型到性能优化,每一项配置都是为了提升网站的响应速度和安全性。希望这些只是能够帮助您更好地利用Nginx的强大功能。

请继续关注,明天我将分享更具体的Nginx核心配置示例,让你对Nginx的配置更加通透。感谢阅读,咱们明天见!


最后,我为您准备了一份特别的技术学习礼物,包括:
Linux学习笔记:详尽记录了Linux的核心知识点和实用技巧。
Java基础笔记:为您打下坚实的Java编程基础。
Java面试总结:十万字的面试经验,助您轻松应对各种技术面试。

【一键领取】
领取这份资料包,您只需轻松一扫:
按住👇🏻图片,扫描二维码,备注:【大礼包】‍
通过好友验证后,您的的专属资料包就会立即发送给您。

Linux系统学习笔记、Java基础学习笔记、10万字Java面试总结
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

趙兴晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值