0%

Nginx 常用配置

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;
}
}