nginx作为使用最为广泛的http服务器,本文系统介绍了其在Linux的最常用操作,为大家提供了相关功能速查手册。内容主要包括了,日常操作、常见配置、常见错误、相关资源三部分内容。
NGINX是一个免费、开源、高性能的HTTP服务器和反向代理,以及IMAP/POP3代理服务器。NGINX以其高性能、稳定性、丰富的功能集、简单的配置和低的资源消耗而闻名。
本文所有操作指令均以已经获得系统管理员权限为前提。由于不同的Linux发行版使用的软件依赖管理工具、系统服务配置工具差异较大,需要根据不同操作系统选择相应的指令。
其中不同发行版软件依赖管理工具映射关系如下:
其中不同发行版使用的服务管理工具映射关系如下:
yum
yum install epel-release
yum
yum install nginx
systemctl
systemctl enable nginx
systemctl
systemctl start nginx
systemctl
systemctl stop nginx
systemctl
systemctl status nginx
systemctl
systemctl restart nginx
systemctl
systemctl reload nginx
nginx的默认日志路径配置为 /var/log/nginx/,该章节默认指令操作目录为日志路径。根据日志的操作目的不同,一般会使用cat、grep、tail等命令查看日志,该章节默认查看操作为实时滚动查看。
tail -f access.log
tail -f error.log
在进行配置文件改动后,需要使用执行重新加载使得配置信息生效,还有少数情况需要重新启动nginx服务。
主配置文件作用主要为定义软件公共配置信息,包括日志路径配置、子配置文件配置等关键信息。
/etc/nginx/nginx.conf
user nginx; worker_processes auto; # 错误日志路径配置 error_log /var/log/nginx/error.log; pid /run/nginx.pid; # 加载动态模块配置 include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } 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; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; # 加载服务器子配置文件 include /etc/nginx/conf.d/*.conf; }
该示例是JAVA网站的典型配置示例,其中包括了反向代理配置、http全部重定向至本域https服务、SSL证书与安全配置等关键配置。
/etc/nginx/conf.d/dm2box.com.conf
# 代理节点配置 upstream dm2box { # 本地dm2box服务java应用服务端口 server 127.0.0.1:8080; } # 80端口服务 server { listen 80; server_name dm2box.com; # 全部重定向至https协议 return 301 https://$server_name$request_uri; } # 443端口服务 server { listen 443 ssl; listen [::]:443; server_name dm2box.com; client_max_body_size 1024m; # ssl证书地址 ssl_certificate /dm2box/full_chain.pem; # 私钥地址 ssl_certificate_key /dm2box/private.key; # 缓存有效期 ssl_session_timeout 5m; # 加密算法 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 安全链接可选的加密协议 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 使用服务器端的首选算法 ssl_prefer_server_ciphers on; #Gzip相关 gzip on; gzip_buffers 4 16k; gzip_comp_level 6; gzip_vary on; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; location / { # 反向代理配置 proxy_pass http://dm2box; proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
版权声明,本文首发于 数字魔盒 https://www.dm2box.com/ 欢迎转载。