通过官网下载 Nginx,将其解压。在命令行内输入./nginx.exe
即可启动。
如果启动的 nginx 进程过多,可能会导致代理不生效! 通过
taskkill /IM nginx.exe /F
命令可以清除所有 nginx 进程。
include server/*.conf
实现为单独一个站点设置配置文件
此配置代表将 server 文件下的所有 conf 文件导入。
http{
include server/*.conf
}
$host
表示请求的地址。server{
listen 80;
server_name test.com;
location /{
proxy_pass http://127.0.0.1:8888;
# 修改代理头为请求的地址
proxy_set_header Host $host;
}
}
proxy_cache_path cache levels=1:2 keys_zone=my_cache:10m;
server{
listen 80;
server_name test.com;
location / {
proxy_pass http://127.0.0.1:8888;
# 修改代理头为请求的地址
proxy_set_header Host $host;
# 设置缓存(名字与上方对应)
proxy_cache my_cache;
}
}
可以使用 Vary 对不同请求头设置缓存。
证书生成命令:
openssl req -x509 -newkey rsa:2048 -nodes -sha256 -keyout localhost-privkey.pem -out localhost-cert.pem
server{
listen ssl;
server_name test.com;
ssl on;
ssl_certificate_key ../certs/localhost-privkey.pem;
ssl_certificate ../certs/localhost-cert.pem;
location / {
proxy_pass http://127.0.0.1:8888;
# 修改代理头为请求的地址
proxy_set_header Host $host;
}
}
其中将证书放到了根目录下 certs
文件夹下。
server{
listen 80 default_server;
listen [::]:80 default_server;
server_name test.com;
return 302 https://$server_name$request_url;
}
HTTP2 中
server{
listen ssl http2;
http2_push_preload on;
}
http2 必须在 https 的基础上开启。