Nginx
Nginx总结
nginx部署
nginx目录配置
nginx命令
Docker_Asp.Net项目部署
Nginx 常用配置汇总:从入门到实战
本文档使用 MrDoc 发布
-
+
首页
Nginx 常用配置汇总:从入门到实战
Nginx 常用配置汇总:从入门到实战 # 引言 Nginx 是一款高性能的 HTTP 和反向代理服务器,同时也是 IMAP/POP3/SMTP 代理服务器和通用的 TCP/UDP 代理服务器。它以其高并发、低资源消耗、易于扩展和配置灵活等特点,在现代互联网架构中占据重要地位。本文将详细介绍 Nginx 的常用配置,帮助读者从入门到实战掌握 Nginx 的配置技巧。 # 一、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 服务器整体运行的配置指令,如运行用户、进程数、错误日志等。 ```shell user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; ``` 2. events 块 影响 Nginx 服务器与用户的网络连接,如工作进程的最大连接数、事件驱动模型等。 ```shell events { worker_connections 1024; use epoll; } ``` 3. http 块 配置代理、缓存、日志、第三方模块等,是服务器配置中最频繁的部分。 ```shell 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 指令实现,将请求转发到后端服务器。 ```bash 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 指令定义一组后端服务器,并通过反向代理将请求分发到这些服务器。 ```bash 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 版本:nginx -v 检查配置文件语法:nginx -t 启动 Nginx:systemctl start nginx 或 /usr/sbin/nginx 停止 Nginx:systemctl stop nginx 或 /usr/sbin/nginx -s stop 重启 Nginx:systemctl restart nginx 或 /usr/sbin/nginx -s reload 六、总结 Nginx 是一款功能强大的 Web 服务器和反向代理服务器,通过合理的配置可以显著提高系统的性能和稳定性。本文介绍了 Nginx 的常用功能和配置方法,包括反向代理、负载均衡、Web 缓存等,并提供了详细的配置示例和常用命令,希望能帮助读者更好地掌握 Nginx 的配置技巧。
孙端己
2024年7月30日 15:38
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码