Nginx 转发 HTTP 及 WebSocket 请求到另一个域名的配置

发布时间: 2023-03-05 21:15:14 作者: 大象笔记

注意!!!

虽然这个配置能达到预期的效果,但是这个配置有 301 问题,暂时没有找到问题根源。

还是对 Nginx 的具体规则不了解。alias,rewrite, redirect 得重新学习下。

需求场景

通过修改本地 hosts 文件,将目标域名的 IP 指向我的服务器,转发所有请求。

同时,

存在的问题

配置

server {
	listen 80;
	server_name www.some_domain.com;

	location ^~ /maintain/api1 {
		default_type application/json;
		index api_result.json;
		alias /home/user1/sunzhongwei.com;
	}

	location ^~ /maintain/exportExcel {
		expires -1;
		add_header Cache-Control no-store;
		default_type application/msexcel;
		index demo.xlsx;
		alias /home/user1/sunzhongwei.com;
	}

	location = /maintain/main.html {
		default_type text/html;
		index main.html;
		alias /home/user1/sunzhongwei.com;
	}

	location ^~ /maintain/js/some.js {
		default_type application/javascript;
		index fault.js;
		alias /home/user1/sunzhongwei.com;
	}

	# websocket
	location ^~ /rangeDataItem {
		proxy_pass http://www.some_domain.com;
		proxy_read_timeout 300s;
		proxy_send_timeout 300s;
		proxy_set_header  Host $http_host;
		proxy_set_header  X-Real-IP  $remote_addr;
		proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header  X-Forwarded-Proto $scheme;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
	}

	location / {
		proxy_pass http://www.some_domain.com;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
	}
}

参考

我是一名山东烟台的开发者,联系作者