Nginx 作为一款轻量级 Web 服务器,常被用静态资源服务器,并作为反向代理服务器与后端服务进行通信,这篇文章介绍一下 Nginx 的一些常用配置。
主要配置详解
Nginx 的配置文件一般位于 /etc/nginx/nginx.conf
,这是 Nginx 的主配置文件,所有的配置项都会在这里进行定义。该配置文件包含多个上下文(context),包括 main、http、server 和 location,每个上下文用于不同的功能模块。以下是 nginx.conf 的常见配置示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } 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; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
|
可以看出,根配置文件会将 /etc/nginx/conf.d/
当中的配置文件进行加载,下面通过配置文件配置临时重定向和反向代理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| server { listen 80 default_server; listen [::]:80 default_server; server_name www.xxx.cn; # 临时重定向到 HTTPS return 301 https://$server_name$request_uri; }
server { listen 80 default_server; listen [::]:80 default_server; listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name www.xxx.com; # SSL 证书存放路径 ssl_certificate "/usr/cert/ssl.pem"; ssl_certificate_key "/usr/cert/ssl.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; # 启用 GZIP 压缩,以减少传输数据的大小,提高性能。 gzip on; gzip_buffers 32 4K; gzip_comp_level 9; gzip_min_length 1k; gzip_types application/javascript text/css text/xml; gzip_vary on; location / { root /usr/share/nginx/html/blog/public; index index.html index.htm; } # 反向代理地址 location /api/ { proxy_pass http://blogbackend:8085/; proxy_redirect off; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
|