背景
由于考虑成本不浪费资源,在购买服务器的时候特意只购买一台带有带宽(可访问公网),而其他机器无法访问公网。然而在实际使用中难免部署项目的时候 发现其实大多数情况下我们的任何一台server都还是需要公网服务的,例如:安装软件(mysql,php)这样的东西。如果使用源码编译的话,则会显的过于复杂 也容易出现问题。下面我们将使用nginx正向代理特性处理这一问题。
正向代理
安装nginx
这里需要强调下,
nginx安装在能够访问公网的机器上 。并进行如下配置:
<!--http请求-->
server {
listen 9090;
resolver 114.114.114.114;
location / {
root html;
index index.html index.htm;
proxy_pass $scheme://$host$request_uri;
proxy_set_header HOST $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_next_upstream error timeout invalid_header http_502;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
<!--处理https请求-->
server{
resolver 114.114.114.114;
listen 9443;
location / {
root html;
index index.html index.htm;
proxy_pass https://$host$request_uri;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_next_upstream error timeout invalid_header http_502;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
nginx重启
nginx -s reload
配置代理
类似于我们配置环境变量一样,在~/.bashrc里添加以下内容.其中username,pwd,ip分别指的是
以上配置nginx可以访问公网的机器的信息
export http_proxy=http://username:pwd@ip:9090/
export ftp_proxy=http://username:pwd@ip:9090/
使得配置生效
source ~/.bashrc
配置yum源代理
在yum的配置文件(/etc/yum.conf)里加入以下内容
proxy=http://username:pwd@ip:9090