Skip to content

五、Nginx配置与应用场景

1、最小配置

sh
user nginx; #配置运行nginx的用户
worker_processes 2; #初始的子进程数量
worker_connections 1024; #配置单个进程处理的最大请求连接数
server{ #配置虚拟主机
listen #配置虚拟主机监听端口
server_name #配置服务器域名
location 匹配规则 { } #配置匹配特定的url
root #配置网站根目录
index #配置虚拟主机的默认首页
error_page 404 /404.html; #解释:当出现404的时候,要重定向到网站根目 录下的404.html页面

user

user nginx; #配置运行nginx的用户

worker_processes

worker_processes 1; 默认为1,表示开启一个业务进程

worker_connections

worker_connections 1024; 单个业务进程可接受连接数

include mime.types;

include mime.types; 引入http mime类型

default_type application/octet-stream;

default_type application/octet-stream; 如果mime类型没匹配上,默认使用二进制流的方式传输。

sendfifile on;

sendfile on; 使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝。

未开启sendfifile

image-20220331162701894

开启后

image-20220331162718255

keepalive_timeout 65;

keepalive_timeout 65;

server

image-20220331162739066

虚拟主机配置

nginx
server {
	listen 80; 监听端口号 
	server_name localhost; 主机名 
	location / { 匹配路径 
		root html; 文件根目录 
		index index.html index.htm; 默认页名称 
	}

	error_page 500 502 503 504 /50x.html; 报错编码对应页面 
	location = /50x.html { 
			root html; 
	}
}

2、虚拟主机

原本一台服务器只能对应一个站点,通过虚拟主机技术可以虚拟化成多个站点同时对外提供服务

servername匹配规则

我们需要注意的是servername匹配分先后顺序,写在前面的匹配上就不会继续往下匹配了。

完整匹配

我们可以在同一servername中匹配多个域名

sh
server_name  vod.mmban.com www1.mmban.com;

通配符匹配

sh
server_name  *.mmban.com

通配符结束匹配

sh
server_name  vod.*;

正则匹配

sh
server_name  ~^[0-9]+\.mmban\.com$;

3、反向代理

proxy_pass http://baidu.com;

nginx
location / {
    proxy_pass http://baidu.com/;
}

4、X-Frame-Options响应头缺失漏洞

故名思意,就是返回的响应头信息中没有包含x-frame-options头信息设置。

x-frame-options头信息的详细介绍可以查看mozilla firefox官方文档

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options

X-Frame-Options 有三个可能的值:

nginx
X-Frame-Options: deny
X-Frame-Options: sameorigin
X-Frame-Options: allow-from https://example.com/

换一句话说,如果设置为 deny,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为sameorigin,那么页面就可以在同域名页面的 frame 中嵌套。

  • deny

    表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

  • sameorigin

    表示该页面可以在相同域名页面的 frame 中展示。

  • allow-from *uri*

    表示该页面可以在指定来源的 frame 中展示。

nginx
# 配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置中:
add_header X-Frame-Options SAMEORIGIN;