概况:
有一台内网机器搭建了 A 需要访问npm
有一个有nginx的外网服务器 B
A不可以直接连接外网,因此想要通过B中转。
在代理时发现
- npm返回的json中带了tgz包的下载地址,
- npm包的下载会出现重定向
因此,对代理做了一些调整,以便顺利下载,下面是实战配置:
worker_processes 1;
events {
worker_connections 1024;
}
http {
proxy_connect_timeout 1800s; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 1800s; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 1800s; #连接成功后,后端服务器响应时间(代理接收超时)
fastcgi_connect_timeout 1800s; #指定nginx与后端fastcgi server连接超时时间
server {
listen 80;
sendfile on;
location / {
proxy_pass https://registry.npmmirror.com;
proxy_set_header Accept-Encoding "";
sub_filter_types "application/json";
sub_filter_once off;
sub_filter 'https://registry.npmmirror.com' 'http://nginx-server-ip';
proxy_redirect ~^https://cdn.npmmirror.com(.*) http://nginx-server-ip/cdn-npmmirror$1;
}
location /cdn-npmmirror {
proxy_pass https://cdn.npmmirror.com;
}
}
}