博客
关于我
Nginx学习总结(12)——Nginx各项配置总结
阅读量:793 次
发布时间:2023-02-15

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

Nginx 常用配置优化指南

1. 用户和组设置

Nginx 通常运行时需要指定特定的用户和用户组,确保运行时的权限管理。建议使用以下配置:

user www www;

注意:权限设置需要提前在文件系统层面进行配置,确保Nginx有执行必要的权限。

2. Nginx 进程数设置

Nginx 的工作进程数应根据服务器的CPU核心数目来设置。例如,如果服务器有8个CPU核心,则建议设置为:

worker_processes 8;

此外,建议设置以下限制:

worker_rlimit_nofile 65535;

该值通常与系统的 ulimit -n 参数保持一致。

3. 配置文件正确性测试

在完成Nginx配置后,建议使用以下命令测试配置文件的正确性:

./nginx -t

该命令会检查配置文件中是否存在语法错误,并提示是否需要重新加载配置。

4. 全局错误日志设置

错误日志的级别可以根据需求进行调整,常用设置如下:

error_log /var/log/nginx/error.log info;

日志级别可选:debuginfonoticewarnerrorcrit

5. 进程文件位置

Nginx 的进程ID文件路径可以自定义为:

pid /var/run/nginx.pid;

6. 文件描述符限制

为了避免因文件描述符过多导致的错误,建议设置:

worker_rlimit_nofile 65535;

该值应根据实际情况调整,与系统的 ulimit -n 保持一致。

7. HTTP 服务器基本配置

Nginx 的默认配置文件通常包含以下内容:

http {    include mime.types;    default_type application/octet-stream;    server_names_hash_bucket_size 128;    client_header_buffer_size 32k;    large_client_header_buffers 4 64k;    client_max_body_size 8m;    sendfile on;    autoindex on;    tcp_nopush on;    tcp_nodelay on;    keepalive_timeout 120;}

配置说明:

  • sendfile on:启用高效文件传输模式(推荐保留)。
  • autoindex on:启用目录列表访问(适用于下载服务器,建议保留)。
  • keepalive_timeout 120:长连接超时时间。

8. FastCGI 参数优化

FastCGI 是提升性能的重要配置,建议设置:

fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;

9. Gzip 模块配置

Gzip 压缩能够显著减少传输数据量,推荐配置:

gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_vary on;

配置说明:

  • gzip on:启用Gzip压缩。
  • gzip_comp_level 2:压缩等级(2为默认,压缩率最佳)。

10. 负载均衡配置

负载均衡可以根据实际服务器情况进行权重分配。例如:

upstream blog.ha97.com {    server 192.168.80.121:80 weight=3;    server 192.168.80.122:80 weight=2;    server 192.168.80.123:80 weight=3;}

11. 虚拟主机配置

虚拟主机的核心配置如下:

server {    listen 80;    server_name www.ha97.com ha97.com;    index index.html index.htm index.php;    root /data/www/ha97;    location ~ .*.(php|php5)? {        fastcgi_pass 127.0.0.1:9000;        fastcgi_index index.php;        include fastcgi.conf;    }}

配置说明:

  • root 指向业务逻辑目录。
  • fastcgi_pass 表示将动态请求转发至FastCGI后端。

12. 图片缓存设置

图片资源缓存时间可以设置为:

location ~ .*.(gif|jpg|jpeg|png|bmp|swf) {    expires 10d;}

默认情况下,图片缓存时间已足够长。

13. JS 和 CSS 缓存设置

静态资源的缓存时间可以稍短:

location ~ .*.(js|css) {    expires 1h;}

14. 日志格式定制

自定义日志格式可以提升监控的便利性:

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

15. 反向代理配置

反向代理是Nginx的核心功能之一,常见配置包括:

location / {    proxy_pass http://127.0.0.1:88;    proxy_redirect off;    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    proxy_set_header Host $host;    client_max_body_size 10m;    client_body_buffer_size 128k;    proxy_connect_timeout 90;    proxy_send_timeout 90;    proxy_read_timeout 90;    proxy_buffer_size 4k;    proxy_buffers 4 32k;    proxy_busy_buffers_size 64k;    proxy_temp_file_write_size 64k;}

16. 动静分离配置

动态资源和静态资源的分离是Nginx的最佳实践,推荐配置如下:

# 动态资源反向代理location ~ .(jsp|jspx|do) {    proxy_set_header Host $host;    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    proxy_pass http://127.0.0.1:8080;}# 静态资源直接读取location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma) {    root /var/lib/tomcat7/webapps/JieLiERP/WEB-INF;    expires 15d;}# JS 和 CSS 缓存location ~ .*.(js|css) {    expires 1h;}

以上配置可根据具体需求进行调整,确保Nginx性能达到最佳状态。

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

你可能感兴趣的文章
Mysql缓存调优的基本知识(附Demo)
查看>>
mysql自增id超大问题查询
查看>>
mysql进阶 with-as 性能调优
查看>>
mysql部署错误
查看>>
MySQL锁与脏读、不可重复读、幻读详解
查看>>
MySQL集群解决方案(4):负载均衡
查看>>
mysql面试题学校三表查询_mysql三表查询分组后取每组最大值,mysql面试题。
查看>>
MySQL面试题集锦
查看>>
mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
查看>>
mysql驱动、durid、mybatis之间的关系
查看>>
mysql驱动支持中文_mysql 驱动包-Go语言中文社区
查看>>
MySQL高可用切换_(5.9)mysql高可用系列——正常主从切换测试
查看>>
MYSQL高可用集群MHA架构
查看>>
MySQL高级-MySQL并发参数调整
查看>>
MySQL高级-MySQL查询缓存优化
查看>>
MySQL高级-SQL优化步骤
查看>>
MySQL高级-视图
查看>>
MySQL高级-触发器
查看>>
mysql高级查询~分页查询
查看>>
MySQL(2)DDL详解
查看>>