
Nginx配置正向代理HTTP和HTTPS.md
5星
- 浏览量: 0
- 大小:None
- 文件类型:MD
简介:
本文档详细介绍了如何配置Nginx作为正向代理来处理HTTP和HTTPS请求。通过具体步骤和示例,帮助读者掌握Nginx代理设置技巧。
### Nginx正向代理http和https
#### 1. 环境介绍
- **操作系统**:CentOS Linux release 7.6.1810 (Core)
- **Nginx版本**:nginx1.18.0
- **网络结构**:
- **服务器A**:部署在DMZ区域,IP地址为192.168.252.247,可以访问互联网。
- **服务器B**:位于内部网络中,IP地址为192.168.10.247,无法直接访问互联网,但可以与服务器A通信。
- **目标**:配置Nginx正向代理服务,使得服务器B可以通过服务器A访问http和https资源。
#### 2. 安装依赖环境
在服务器A上(IP地址为192.168.252.247)安装必要的依赖库:
```shell
yum install gcc gcc-c++ autoconf automake -y
yum install zlib zlib-devel -y
yum install pcre pcre-devel -y
yum install openssl openssl-devel -y
yum install patch -y
yum install git -y
```
#### 3. 安装Nginx及第三方模块
- **下载并准备Nginx源码**
```shell
# 进入src目录
cd /usr/local/src
# 下载nginx源码包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
# 克隆第三方模块项目到本地
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
# 解压nginx源码包
tar zxvf nginx-1.18.0.tar.gz
# 进入解压后的nginx目录
cd nginx-1.18.0
# 对第三方模块进行处理
patch -p1 < /usr/local/src/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_101504.patch
```
- **配置Nginx编译参数**
```shell
./configure --prefix=/usr/share/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib64/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/lib/nginx/tmp/client_body \
--with-http_stub_status_module \
--http-proxy-temp-path=/var/lib/nginx/tmp/proxy \
--http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi \
--http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi \
--http-scgi-temp-path=/var/lib/nginx/tmp/scgi \
--pid-path=/run/nginx.pid \
--lock-path=/run/lock/subsys/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-stream_ssl_preread_module \
--with-http_addition_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-stream_ssl_module \
--add-module=/usr/local/src/ngx_http_proxy_connect_module
```
- **编译并安装**
```shell
make
sudo make install
```
#### 4. 配置Nginx正向代理
##### 4.1 HTTP正向代理配置
在`etc/nginx/nginx.conf`文件中添加如下配置:
```nginx
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
proxy_temp_path /var/lib/nginx/tmp/proxy;
server {
listen 8080;
server_name proxy.example.com;
location / {
proxy_pass http://192.168.252.247:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache my_cache;
proxy_cache_key $scheme$request_method$host$request_uri;
proxy_ignore_headers Cache-Control Expires;
proxy_read_timeout 90;
proxy_send_timeout 90;
}
}
}
```
##### 4.2 HTTPS正向代理配置
由于Nginx默认不支持HTTPS的正向代理,因此需要安装第三方模块`ngx_http_proxy_connect_module`,已在步骤3中完成。HTTPS代理配置如下:
```nginx
http {
server {
listen 8081 ssl;
server_name proxy.example.com;
location / {
proxy_pass https://192.168.252.247:443;
proxy_set_header Host $
全部评论 (0)


