# Nginx
# 一些文章
# 安装(mac)
brew update
brew search nginx
brew install nginx
1
2
3
4
5
2
3
4
5
# 常用命令
nginx # 打开 nginx
nginx -t # 测试配置文件是否有语法错误
nginx -s reopen # 重启Nginx
nginx -s reload # 重新加载Nginx配置文件,然后以优雅的方式重启Nginx
nginx -s stop # 强制停止Nginx服务
nginx -s quit # 优雅地停止Nginx服务(即处理完所有请求后再停止服务)
# 本机 NGINX 路径 (需使用自己电脑 nginx 路径)
# /usr/local/Cellar/nginx/1.17.7/bin/nginx
# --------- 防止防火墙拦截 ------------------------------------------ #
# sudo chown root:wheel /usr/local/Cellar/nginx/1.17.7/bin/nginx
# sudo chmod u+s /usr/local/Cellar/nginx/1.17.7/bin/nginx
# ----------------------------------------------------------------- #
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 常用配置
# user root owner;
# user nobody;
worker_processes 1;
# error_log logs/error.log;
# error_log logs/error.log notice;
# error_log logs/error.log info;
# pid logs/nginx.pid;
events {
# 单个后台进程的最大并发数
worker_connections 1024;
}
http {
include 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"';
# nginx 访问日志存放目录
# access_log logs/access.log main;
# 开启高效传输模式
sendfile on;
# 减少网络报文段的数量
# tcp_nopush on;
# 超时时间
# keepalive_timeout 0;
keepalive_timeout 65;
# 开启gzip压缩
gzip on;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
gzip_comp_level 9;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/json application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
# server {
# listen 8080;
# server_name localhost;
# # charset koi8-r;
# # access_log logs/host.access.log main;
# location / {
# root html;
# index index.html index.htm;
# }
# # error_page 404 /404.html;
# # redirect server error pages to the static page /50x.html
# #
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# root html;
# }
# # proxy the PHP scripts to Apache listening on 127.0.0.1:80
# #
# # location ~ \.php$ {
# # proxy_pass http://127.0.0.1;
# # }
# # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
# #
# # location ~ \.php$ {
# # root html;
# # fastcgi_pass 127.0.0.1:9000;
# # fastcgi_index index.php;
# # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# # include fastcgi_params;
# # }
# # deny access to .htaccess files, if Apache's document root
# # concurs with nginx's one
# #
# # location ~ /\.ht {
# # deny all;
# # }
# }
# another virtual host using mix of IP-, name-, and port-based configuration
# server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
# }
# HTTPS server
# server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
# }
# 子配置项位置
include /Users/wsq/Code/nginx/*.nginx.conf;
include servers/*;
}
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
default config
server {
listen 80;
server_name localhost;
# 服务默认启动目录
root /Users/wsq/Code/nginx/html;
# 默认访问文件
index index.html;
location / {
index index.html;
}
# 静态资源
location /assets/ {
alias /Users/wsq/Code/nginx/html/assets/;
}
# 配置404页面
error_page 404 /Users/wsq/Code/nginx/html/404.html;
# redirect server error pages to the static page /50x.html
# 错误状态码的显示页面,配置后需要重启
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /Users/wsq/Code/nginx/html;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
# location ~ /\.ht {
# deny all;
# }
}
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
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
# 部署前端框架 构建后的 静态页面
使用 try_files 指向 index.html,详细描述见Web 应用的前端控制器模式 (opens new window)。
try_files $uri $uri/ /index.html;
1
参考资料:
完整代码
worker_processes 1;
events {
worker_connections 1024;
}
http {
# 开启gzip压缩
gzip on;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
gzip_comp_level 9;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/json application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
server {
listen 4201;
server_name localhost;
root /project_path;
index index.html;
location / {
try_files $uri $uri/ /index.html;
index index.html;
}
location /dapi/ {
proxy_pass http://172.0.x.x:80;
}
}
}
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
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