本文共 3515 字,大约阅读时间需要 11 分钟。
Nginx 通常运行时需要指定特定的用户和用户组,确保运行时的权限管理。建议使用以下配置:
user www www;
注意:权限设置需要提前在文件系统层面进行配置,确保Nginx有执行必要的权限。
Nginx 的工作进程数应根据服务器的CPU核心数目来设置。例如,如果服务器有8个CPU核心,则建议设置为:
worker_processes 8;
此外,建议设置以下限制:
worker_rlimit_nofile 65535;
该值通常与系统的 ulimit -n 参数保持一致。
在完成Nginx配置后,建议使用以下命令测试配置文件的正确性:
./nginx -t
该命令会检查配置文件中是否存在语法错误,并提示是否需要重新加载配置。
错误日志的级别可以根据需求进行调整,常用设置如下:
error_log /var/log/nginx/error.log info;
日志级别可选:debug、info、notice、warn、error、crit。
Nginx 的进程ID文件路径可以自定义为:
pid /var/run/nginx.pid;
为了避免因文件描述符过多导致的错误,建议设置:
worker_rlimit_nofile 65535;
该值应根据实际情况调整,与系统的 ulimit -n 保持一致。
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:长连接超时时间。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;
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为默认,压缩率最佳)。负载均衡可以根据实际服务器情况进行权重分配。例如:
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;} 虚拟主机的核心配置如下:
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后端。图片资源缓存时间可以设置为:
location ~ .*.(gif|jpg|jpeg|png|bmp|swf) { expires 10d;} 默认情况下,图片缓存时间已足够长。
静态资源的缓存时间可以稍短:
location ~ .*.(js|css) { expires 1h;} 自定义日志格式可以提升监控的便利性:
log_format access '$remote_addr - $remote_user [$time_local] "$request" "$status" "$body_bytes_sent" "$http_referer" "$http_user_agent" "$http_x_forwarded_for'";
反向代理是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;} 动态资源和静态资源的分离是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/