文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Nginx 常用配置汇总:从入门到实战

2024-11-29 20:19

关注

一、Nginx 简介

Nginx 由俄罗斯人 Igor Sysoev 开发,开源且轻量级。它的设计目标是高效处理高并发连接,支持高达 50,000 个并发连接。Nginx 还支持热部署,可以在不中断服务的情况下更新配置或升级软件。

二、Nginx 常用功能

1. 正向代理与反向代理

2. 负载均衡

Nginx 支持多种负载均衡策略,包括轮询、加权轮询、IP hash 等,可以根据实际业务需求选择合适的策略。

3. Web 缓存

Nginx 可以对静态内容进行缓存,减少对后端服务器的请求,提高系统性能。同时,Nginx 也支持 FastCGI 缓存,适用于动态内容的缓存。

三、Nginx 配置文件结构

Nginx 的配置文件通常位于 /etc/nginx/ 目录下,主配置文件名为 nginx.conf。配置文件以区块(block)的形式组织,主要包括全局块、events 块、http 块等。

1. 全局块

主要设置影响 Nginx 服务器整体运行的配置指令,如运行用户、进程数、错误日志等。

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

2. events 块

影响 Nginx 服务器与用户的网络连接,如工作进程的最大连接数、事件驱动模型等。

events {
    worker_connections 1024;
    use epoll;
}

3. http 块

配置代理、缓存、日志、第三方模块等,是服务器配置中最频繁的部分。

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    sendfile on;
    keepalive_timeout 65;
    
    server {
        listen 80;
        server_name localhost;
        location / {
            root /usr/share/nginx/html;
            index index.html index.htm;
        }
    }
}

四、常用配置示例

1. 反向代理配置

反向代理配置主要通过 proxy_pass 指令实现,将请求转发到后端服务器。

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

upstream backend_server {
    server 192.168.1.100:8080;
    server 192.168.1.101:8080 backup;
}

2. 负载均衡配置

负载均衡配置通过 upstream 指令定义一组后端服务器,并通过反向代理将请求分发到这些服务器。

upstream myapp1 {
    server backend1.example.com weight=5;
    server backend2.example.com;
    server backend3.example.com down;
}

server {
    listen 80;

    location / {
        proxy_pass http://myapp1;
    }
}

3. 日志配置

Nginx 支持详细的访问日志和错误日志记录,便于问题排查和性能分析。

http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log;
}

4. 缓存配置

开启缓存可以显著提高静态资源的访问速度。

http {
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g
                     inactive=60m use_temp_path=off;

    server {
        location /static/ {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_valid 200 302 60m;
            proxy_cache_valid 404 1m;
        }
    }
}

五、Nginx 常用命令

六、总结

Nginx 是一款功能强大的 Web 服务器和反向代理服务器,通过合理的配置可以显著提高系统的性能和稳定性。本文介绍了 Nginx 的常用功能和配置方法,包括反向代理、负载均衡、Web 缓存等,并提供了详细的配置示例和常用命令,希望能帮助读者更好地掌握 Nginx 的配置技巧。

来源:程序员编程日记内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯