前言:最近在处理http和https前端混用的时候需要用到反向代理,在nginx中设置反向代理需要编辑nginx的配置文件(一般是
nginx.conf
或者sites-available
目录下的配置文件)。具体步骤如下:
-
打开nginx的配置文件,不同的安装方式可能位置有差异。
vim /etc/nginx/nginx.conf
-
在
http
块中添加一个server
块来定义反向代理服务器。server { listen 8081 ssl http2; listen [::]:8081 ssl http2; server_name _; #这里可以替换成服务器域名your-domain.com ... #其他设置 #>>>设置代理 location ^~/api/ { proxy_pass http://192.168.10.1:8088/; #backend-server } #<<<设置代理 #>>>https设置 ssl_certificate "/etc/pki/nginx/ssl.crt"; ssl_certificate_key "/etc/pki/nginx/private/ssl.key"; client_max_body_size 10m; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; #<<<https设置 ...#其他设置 }
-
保存并退出文件。
-
在我的测试环境centOS7.9中需要重新加载nginx配置文件以生效。在windows环境下注意结束掉所有的nginx进程然后重启nginx.exe以生效。
#centOS7.9 nginx -s reload #windows 可以使用任务管理器关闭
-
现在,当你访问
your-domain.com
时,nginx会将请求转发到backend-server
上,如:当前端请求为"https://192.168.9.99:8081/api/test"
的接口时,请求将被转发到"http://192.168.10.1:8088/test"
。并将响应返回给客户端。
请注意,上述示例中的配置是基本的反向代理配置。根据你的需求,你可能还需要进行其他配置,例如添加SSL证书、缓存、限速等。具体的配置取决于你的应用程序和服务器环境。