Nginx配置反向代理

Nginx 的其中一个用途是做 HTTP 反向代理,下面简单介绍 Nginx 作为反向代理服务器的方法。

场景描述:

  1. 访问服务器上的README.md文件, http://192.168.6.6/readme.md, 服务器进行反向代理,从https://github.com/yidao620c/scrapy-cookbook/blob/master/README.md获取页面内容。
  2. 访问服务的8080端口,服务器进行反向代理, 跳转到https://163.com

1. 配置https

1. 安装openssl相关软件
[root@lotus nginx]¥ yum -y install openssl*
2. 颁发证书给自己
[root@lotus nginx]$ openssl genrsa -des3 -out server.key 1024            # 用于生成rsa私钥文件

[root@lotus nginx]$ openssl req -new -key server.key -out server.csr     # openssl req 用于生成证书请求

[root@lotus nginx]$ openssl rsa -in server.key -out server_nopwd.key     #利用openssl进行RSA为公钥加密

[root@lotus nginx]$ openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

[root@lotus nginx]$ mv server.crt server_nopwd.key /usr/local/nginx/conf/

2. 在 conf.d目录下新建 reve.conf文件

# 添加上面的https
server {
      listen 443 ssl;
      ssl_certificate      server.crt;
      ssl_certificate_key  server_nopwd.key;
}

server {
    listen 8080;

    # 访问8080端口,跳转到网易首页
    location / {
        proxy_pass https://163.com;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }

    # 访问 8080:/readme.md 从github上获取相应的文件
   location /readme.md {
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://github.com/yidao620c/scrapy-cookbook/blob/master/README.md;
    }
}

3. 重新启动nginx

[root@lotus nginx]$ ./sbin/nginx -s reload

4. 访问页面

1. 访问 192.168.6.6:8080 跳转到“网易首页”
2. 访问 92.168.6.6:8080/readme.rd 从github上获取相应的文件
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容