# 在 Windows 系统下使用 nginx
# 软件获取
有 2 种方式去获得 nginx 程序,一个是使用 nginx 官方的程序;另一个是使用 OpenResty;
OpenResty:通过 Lua 扩展 NGINX 实现的可伸缩的 Web 平台
如果没有额外的需求,可以直接使用原版的 nginx;简单使用的情况下,这两者并无本质区别;
# nginx 原版
# OpenResty
# 常用命令行
以下演示没有配置环境变量的情况下,如何去使用命令;首先需要进入到 nginx.exe 的根目录下
如果已经配置了环境变量,可以简化命令,不需要再携带 .exe;且无需先定位到 nginx.exe 的根目录下;
# 检查配置文件
在启动 nginx 程序前,建议先使用检查配置文件的命令,检查下配置文件是否正确;如果配置文件存在错误,则无法正常启动 nginx;
nginx.exe -t
1
使用上面的命令,检查配置文件的正确性;如果返回下面的输出,说明配置文件正常;可以进行后续的操作;
nginx: the configuration file ./conf/nginx.conf syntax is ok
nginx: configuration file ./conf/nginx.conf test is successful
1
2
2
# 启动程序
start nginx.exe
1
使用上面的命令,cmd 窗口不会一直处于执行中,可以继续进行其他命令的操作;
如果直接键入 nginx.exe ,在会卡住 cmd 命令行;
# 关闭程序
nginx.exe -s quit
1
使用上面的命令,nginx 会有序且完整地关闭;所谓 “优雅关闭”;
nginx.exe -s stop
1
stop 会直接关闭掉 nginx;可能并不会保存相关的信息;
# 重启程序
nginx.exe -s reload
1
使用上面的命令,会重启 nginx 程序;
# 常用的一些配置
# 配置为 web files browser
将 D:\Files\Path目录下的文件,通过 HTTP 服务暴露出来;通过浏览器访问,可以直接下载文件;快速搭建起一个文件服务器,实现快速分享文件;
# Simple HTTP Server
server {
listen 20927;
server_name localhost;
location / {
root D:\Files\Path;
autoindex on; # 自动索引
autoindex_exact_size off; # 显示文件大小
autoindex_localtime on; # 显示文件创建时间
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
如果只是想简单地、暂时性地分享文件,还可以考虑使用其他方法:
# 反向代理
# 本地 8080 的反向代理
server {
listen 18080;
server_name localhost;
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:8080;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024M; # 最大允许上传 1024 MB 的文件
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 开启 https
注意 cert 证书的位置;证书的位置要配置正确,否则无法启动 nginx;
# 8080 反向代理的地址 https 模式
server {
listen 18081 ssl http2; # https 并不一定要运行在 443 端口
server_name yourdomain;
# 以下为 ssl 配置
ssl_certificate ./cert/yourdomain.cer;
ssl_certificate_key ./cert/yourdomain.key;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_timeout 4h;
add_header Strict-Transport-Security "max-age=31536000"; # HSTS 设置
# 配置 gzip 压缩;以下配置块可选
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# 以反向代理的配置为例
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:8080;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024M;
}
}
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
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