Linux 技术手札

Nginx 设定反向代理 Reverse Proxy

什么是反向代理 Reverse Proxy?

反向代理是在真实服务器与客户端间的代理服务器, 当使用者透过客户端 (浏览器) 访问网站时, 反向代理服务器会将请求转送到背后的真实服务器, 再将网站的结果传送给客户端。真实服务器可能是本机的其他 Port, 也可能在内部网络, 或者在其他外部网络, 这样使用者不会知道真实的服务器在那里, 可以隐藏真正服务器的位置, 而且也可以实现 load balancing.

安装 Nginx 可以用 yum 或 apt-get 安装:

$ sudo yum install nginx

$ sudo apt install nginx

然后启动 Nginx 及设定开机自动启动:

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

当安装了 Nginx 后, 开启 Nginx 的设定档:

$ sudo vim /etc/nginx/conf.d/default.conf

加入以下内容:

上面设定了网域 example.yourdomain.com, 而后端真实服务器是 http://www.your-real-domain.com.

由于真实服务器与使用者中间有反向服务器, 要取得使用者的 IP, 不能用默认的方法。
上面的例子中, 在真实服务器的 PHP 程式内, 要取得使用者的 IP, 需要用 $_SERVER[‘HTTP_X_REAL_IP’] 或 $_SERVER[‘HTTP_X_FORWARDED_FOR’] 取得.

设定后先检查设定档的语法是否正确:

$ sudo nginx -t

如果没有错误, 便可以重新加载 Nginx 的新设定:

$ sudo nginx -s reload

现在当有访问 Nginx 时, 便会加载 http://www.your-real-domain.com 的内容.

Exit mobile version