使用nginx做正向代理

背景

由于考虑成本不浪费资源,在购买服务器的时候特意只购买一台带有带宽(可访问公网),而其他机器无法访问公网。然而在实际使用中难免部署项目的时候 发现其实大多数情况下我们的任何一台server都还是需要公网服务的,例如:安装软件(mysql,php)这样的东西。如果使用源码编译的话,则会显的过于复杂 也容易出现问题。下面我们将使用nginx正向代理特性处理这一问题。

正向代理

安装nginx

这里需要强调下, nginx安装在能够访问公网的机器上 。并进行如下配置:

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;
    }
    }

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

你可能感兴趣的:(nginx,服务器,linux,运维)