码峰博客 – 码而思

分享积累从此时此刻开始

nginx 常用命令

重启与关闭

# mac
sudo nginx -s stop && sudo nginx

# nginx 配置号后,仍无法访问
# MAC 临时关闭防火墙
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
# MAC 打开防火墙
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

# mac 检查监听端口
sudo lsof -i :80

配置代理

配置 api api1 同时转发至同一目标
location ~ ^/(api|api1)/ {
location ~ ^/api(|1)/ {
        proxy_pass http://host.docker.internal:8080; 
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

# 以 json png 结尾 且以100000开头的目录的请求
location ~* /100000/.*\.(json|png|jpg)$ {
		root   /home/dataplatform/frontend/maptool/html;
        index  index.html index.htm;
}
# 以 json png 结尾的文件转发,先匹配上边,上边匹配不到才会匹配此规则
location ~* /.*\.(json|png|jpg)$ {
        proxy_pass http://maptool-api;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
}

实例1

# 以100000开头的 pcd|json 的文件
# 1.请求本地
# 2.解除跨域
# 3.直接返回数据(pcd默认浏览器会提示下载)
location ~* /100000/.*\.(pcd|json)$ {

	# 设置 .pcd 文件的 MIME 类型为 text/plain
	# 设置 .json 文件的 MIME 类型为 application/json
	types {
		text/plain pcd;
		application/json json;
	}
	
	# 禁用默认 MIME 类型匹配
	default_type text/plain;

	# 如果需要,可以禁用下载行为
	add_header Content-Disposition "inline";
	

	# 允许的 HTTP 方法
	if ($request_method = 'OPTIONS') {
		add_header Access-Control-Allow-Origin "*";
		add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE";
		add_header Access-Control-Allow-Headers "Authorization, Content-Type, Accept, token";
		add_header Access-Control-Max-Age 1728000; # 缓存预检请求的时间
		add_header Content-Length 0;
		return 204; # 返回 204 No Content
	}
	# 允许跨域的实际请求
	add_header Access-Control-Allow-Origin "*";
	add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE";
	add_header Access-Control-Allow-Headers "Authorization, Content-Type, Accept, token";


	root   /home/dataplatform/frontend/maptool/html;
	index  index.html index.htm;
}

# 以100000开头的 png|jpg的请求本地
location ~* /100000/.*\.(png|jpg)$ {
	root   /home/dataplatform/frontend/maptool/html;
	index  index.html index.htm;
}

# 所有 json|png|jpg|pcd 代理至 zjflyy522.oicp.net
location ~* /.*\.(json|png|jpg|pcd)$ {
	proxy_pass http://file-server;
	proxy_set_header Host zjflyy522.oicp.net;
	proxy_set_header X-Real-IP $remote_addr;
}
Index