Nginx Web服务器常用配置
- 2024-09-26 20:01:00
- 丁国栋
- 原创 67
Nginx是流行的一款强大的Web服务器,因为反向代理被大家所熟知等。因为功能强大所以配置多种多样,本文汇总了一些常用的Nginx配置,供查阅和参考。
在配置Nginx之前我们应该了解如何验证Nginx配置文件合法性和重新加载配置。
检查Nginx配置文件是否合法,配置有无错误。
nginx -t重新加载Nginx配置文件(无需重启Nginx,对已经在处理的Nginx进程没有影响,平滑重启Nginx)
nginx -s reload在测试Nginx时有一个清晰可用的后端服务是非常重要的,可以使用httpbin或者whoami,这样可以很清晰的知道Nginx在反向代理时做了啥。
docker run -p 8001:80 kennethreitz/httpbin docker run -p 8002:80 traefik/whoami docker run -d --name whoami --hostname whoami -p 32769:80 traefik/whoami
访问结果:
# curl http://localhost:8001/anything { "args": {}, "data": "", "files": {}, "form": {}, "headers": { "Accept": "*/*", "Host": "localhost:8001", "User-Agent": "curl/7.88.1" }, "json": null, "method": "GET", "origin": "172.17.0.1", "url": "http://localhost:8001/anything" }
# curl http://localhost:8002 Hostname: whoami IP: 127.0.0.1 IP: 172.17.0.6 RemoteAddr: 172.17.0.1:52228 GET / HTTP/1.1 Host: localhost:8002 User-Agent: curl/7.88.1 Accept: */*
- 配置 nginx 拦截 HTTP HEAD 请求
server { listen 80; server_name example.com; location / { # 拦截 HEAD 请求 if ($request_method = HEAD) { return 403; # 返回403 Forbidden } # 其他请求处理 try_files $uri $uri/ =404; } }
Nginx反向代理时proxy_pass末尾斜杠的处理
proxy_pass 分为两种类型:不带 URI 方式和带 URI 方式。不带 URI 方式只包含 IP 和端口号,例如 proxy_pass http://example.com:8000。带 URI 方式在端口号之后有其他路径(包含只有 “/” 的),如 proxy_pass http://example.com:8000/、 proxy_pass http://localhost:8080/path 以及 proxy_pass http://localhost:8080/path/ 。
在 proxy_pass 不带 URI时,nginx 将会保留 location 中路径部分,将location 中的路径原封不动的放到代理的地址后面。
在 proxy_pass 带URI时,nginx将不再保留 location 中的路径部分,将除了location的路径再放到代理的地址后面。
通常location和proxy_pass保持一样的风格,要么都不带,要么都带。
发表评论