nginx 反向代理用做内网域名转发

3,935 阅读1分钟

编辑反向代理服务器配置文件

$ vim /usr/local/nginx/conf/reverse-proxy.conf

server {
	listen 80;
	server_name share.vhost1.cn; 
	location / {
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
		proxy_pass http://192.168.1.1:3000;
	}
	access_log logs/share.vhost1_access.log; 
}
server {
	listen 80;
	server_name share.vhost2.cn; 
	location / {
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass; 
		http://192.168.1.2:80;
	}
	access_log logs/xxx456.tk_access.log; 
}

然后重新加载 nginx 配置文件,使之修改生效,再把 share.vhost1.cn 域名指向公司静态IP,这样就成功的做到了在浏览器中输入 share.vhost1.cn 的时候访问的内网服务器 192.168.1.1 的 3000 端口,,输入 share.vhost2.cn 访问 192.168.1.2 的 80 端口的效果。

如果想对后端机器做负载均衡,像下面这配置就可以把对 share.vhost3.cn 的请求分发给内网的 111 和 222 这两台机器做负载均衡了

upstream share_server {
    server 192.168.1.111:80;
    server 192.168.1.222:80;
}
server {
	listen 80;
	server_name share.vhost3.cn; 
	location / {
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass; 
		http://share_server;
	}
	access_log logs/share.vhost3_access.log; 
}