目录
nginx下载地址:nginx: download
解压后运行 nginx:
打开 localhost:
Nginx打开本地指定文件:
编辑 nginx.conf 文件:
修改指向目录:
打开:localhost/
结束 nginx:
Windows命令操作:
配置域名
添加多域名报错:
配置 https 443
http 重定向 https
上传文件大小限制
开机启动(注册为服务)
参考
nginx下载地址:nginx: download
解压后运行 nginx:
默认启用80端口,需要保证80端口不被占用,cmd下面命令查看80端口使用情况
或者打开 nginx-1.18.0\conf\nginx.conf 文件更改端口
运行成功后任务管理器会有两个 nginx.exe
netstat -aon|findstr ":80"
打开 localhost:
显示 Welcome to nginx! 代表启动成功
默认打开的是 html 文件夹下的页面
Nginx打开本地指定文件:
例如:打开F盘的图片
编辑 nginx.conf 文件:
修改指向目录:
注释 root html;
添加 alias F:/;
打开:localhost/
结束 nginx:
打开任务管理器 ==》 点击名称排序 ==》 找到 nginx ==》 右键结束
Windows命令操作:
在nginx目录执行:按住 shift+鼠标右键,打开Powershell窗口
查看版本:
nginx -v
启动服务:
start nginx
停止服务:
nginx -s stop
强制关闭nginx
taskkill /f /t /im nginx.exe
重新加载:(配置文件被修改后执行它)
nginx -s reload
配置域名
proxy_pass 为重定向到指定 url
server {
listen 80;
server_name test.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
server {
listen 80;
server_name test11.com,www.test11.com;
location / {
proxy_pass http://127.0.0.1:3001;
}
}
server {
listen 81;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
添加多域名报错:
D:\nginx-1.18.0>nginx -s reload
nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 32
添加:server_names_hash_bucket_size 1024;
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 1024;
.......
}
配置 https 443
在 conf 目录,新建文件夹 cert ,放入下载的证书(nginx版本)
编辑 nginx.conf 文件
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 1024;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.xxxx.com,xxxx.com;
location / {
proxy_pass http://127.0.0.1:8000;
}
}
# HTTPS server
server {
listen 443 ssl;
server_name www.xxxx.com;
# 证书路径 ----->
ssl_certificate cert/www.xxxx.com.crt;
ssl_certificate_key cert/www.xxxx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
}
重载配置
nginx -s reload
本地带 https 访问测试一下 ==> 本地可以 ==> 外网无法访问 ==> 去防火墙放行 443 端口
防火墙放行:控制面板 ==> Windows Defender 防火墙 ==> 高级设置 ==> 入站规则
http 重定向 https
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 1024;
server {
listen 80;
#填写绑定证书的域名
server_name www.xxxx.com,xxxx.com;
#(第一种)把http的域名请求转成https
#return 301 https://$host$request_uri;
#(第二种)强制将http的URL重写成https
rewrite ^(.*) https://$server_name$1 permanent;
}
# HTTPS server
server {
listen 443 ssl;
server_name www.xxxx.com;
# 证书路径 ----->
ssl_certificate cert/www.xxxx.com.crt;
ssl_certificate_key cert/www.xxxx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
}
上传文件大小限制
client_max_body_size 允许客户端上传文件的大小(默认为1m,如果设置为0,表示上传文件大小不受限制)
server {
listen 80;
server_name www.test.com;
client_max_body_size 0;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
开机启动(注册为服务)
下载注册服务工具:下载
重命名后,放到 nginx 根目录
在根目录新建 winswbin.xml (名称要与前面一致)
winswbin.xml 内容:修改目录地址为 nginx 实际安装地址
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<logpath>E:\nginx</logpath>
<logmode>roll</logmode>
<depend></depend>
<executable>E:\nginx\nginx.exe</executable>
<stopexecutable>E:\nginx\nginx.exe -s stop</stopexecutable>
</service>
在 nginx 根目录 运行命令
winswbin.exe install
运行 winswbin.exe install 问题
问题1:若出现 WMI.WmiException: AccessDenied 错误,请使用管理员身份打开cmd
问题2:若切换不了盘符,试下以下方法(直接输入盘符加英文冒号)
cmd 输入命令 services.msc 查看服务,然后右键启动即可