Nginx是一个高性能的开源Web服务器和反向代理服务器,常用于负载均衡、反向代理、静态资源服务和HTTP缓存等。以下是Nginx的详细配置说明:
-
基本配置: Nginx的基本配置位于
nginx.conf
文件中。在这里,你可以指定Nginx运行的端口、工作进程数、日志文件路径等。 -
HTTP块: Nginx的配置主要包含在
http
块中。在http
块中,可以配置HTTP服务器的全局参数和HTTP相关的模块,例如gzip压缩、缓存配置、反向代理等。 -
Server块: 在
http
块内,可以有多个server
块,每个server
块定义一个虚拟主机。在server
块中,你可以指定虚拟主机监听的端口、域名、SSL证书等信息。 -
Location块: 在
server
块内,可以有多个location
块,用于配置特定URL的请求处理。在location
块中,你可以定义反向代理规则、静态资源目录、缓存配置等。 -
反向代理: 通过
proxy_pass
指令,可以将请求代理到其他服务器。例如:server { location / { proxy_pass http://backend_server; } }
- 负载均衡: Nginx支持多种负载均衡算法,例如轮询(默认)、加权轮询、IP hash等。可以使用
upstream
块定义后端服务器组,并在server
块中使用proxy_pass
实现负载均衡。upstream backend_server { server 192.168.1.100:8080; server 192.168.1.101:8080; } server { location / { proxy_pass http://backend_server; } }
- 静态资源: 可以使用
root
或alias
指令配置静态资源的目录,并使用try_files
指令处理请求的静态资源。server { location /static/ { root /var/www/html; } }
- HTTP缓存: 可以使用
expires
指令配置HTTP缓存,提升静态资源的加载速度。server { location /static/ { root /var/www/html; expires 7d; } }
- 重定向: 可以使用
return
或rewrite
指令实现URL的重定向。server { location /old-url { return 301 http://example.com/new-url; } }
- 配置php-fpm和 SSL:
server { listen 443 ssl; listen [::]:443 ssl; server_name www.example.com ; ssl_certificate certs/com_bundle.crt; ssl_certificate_key certs/com.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.2 TLSv1.3; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; index index.html index.php index.htm; location / { root /data/webapps/www; index index.html index.php index.htm; try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { root /data/webapps/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } }
以上仅是Nginx配置的一部分,Nginx提供了丰富的指令和模块,可以根据需求进行灵活配置和扩展。配置文件修改后,需要重新加载Nginx服务器以使配置生效。在Linux中,可以使用nginx -s reload
命令来重新加载配置。配置文件修改前,最好先使用nginx -t
命令检查配置文件语法是否正确。