7. 配置反向代理
反向代理是工作中最常用的服务器功能,经常被用来解决跨域问题,下面简单介绍一下如何实现反向代理。
首先进入 Nginx 的主配置文件:
vim /etc/nginx/nginx.conf
复制代码
为了看起来方便,把行号显示出来 :set nu
(个人习惯),然后我们去 http
模块的 server
块中的 location /
,增加一行将默认网址重定向到最大学习网站 Bilibili 的 proxy_pass
配置 ? :
改完保存退出,nginx -s reload
重新加载,进入默认网址,那么现在就直接跳转到 B 站了,实现了一个简单的代理。
实际使用中,可以将请求转发到本机另一个服务器上,也可以根据访问的路径跳转到不同端口的服务中。
比如我们监听 9001
端口,然后把访问不同路径的请求进行反向代理:
http://127.0.0.1:9001/edu
的请求转发到 http://127.0.0.1:8080
http://127.0.0.1:9001/vod
的请求转发到 http://127.0.0.1:8081
这种要怎么配置呢,首先同样打开主配置文件,然后在 http 模块下增加一个 server 块:
server {
listen 9001;
server_name *.sherlocked93.club;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081;
}
}
复制代码
反向代理还有一些其他的指令,可以了解一下:
proxy_set_header
:在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息。proxy_connect_timeout
:配置Nginx与后端代理服务器尝试建立连接的超时时间。proxy_read_timeout
:配置Nginx向后端服务器组发出read请求后,等待相应的超时时间。proxy_send_timeout
:配置Nginx向后端服务器组发出write请求后,等待相应的超时时间。proxy_redirect
:用于修改后端服务器返回的响应头中的Location和Refresh。