nginx正反向代理配置详解

一、nginx正向代理介绍及配置

1、环境介绍

代理服务器系统环境为:centos7.3

nginx代理服务器为:192.168.10.10

测试客户端为局域网内任意windows电脑或Linux电脑

2、正向代理简介

nginx不仅可以做反向代理,还能用作正向代理来进行上网等功能。如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理(也就是大家常说的,通过正向代理进行上网功能)

3、nginx正向代理的配置

现在的网站基本上都是https,要解决既能访问http80端口也能访问https443端口的网站,需要配置两个SERVER节点,一个处理HTTP转发,另一个处理HTTPS转发,而客户端都通过HTTP来访问代理,通过访问代理不同的端口,来区分HTTP和HTTPS请求。

[[email protected] ~]# vim /usr/local/nginx-1.12.1/conf/nginx.conf

server {

resolver 114.114.114.114;       #指定DNS服务器IP地址

listen 80;

location / {

proxy_pass http://$host$request_uri;     #设定代理服务器的协议和地址

proxy_set_header HOST $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;

}

}

server {

resolver 114.114.114.114;       #指定DNS服务器IP地址

listen 443;

location / {

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;

}

}

[[email protected] ~]# /usr/local/nginx-1.12.1/sbin/nginx -s reload

4、Linux客户端访问测试

http的访问测试

[[email protected] ~]# curl  -I --proxy 192.168.10.10:80 www.baidu.com

HTTP/1.1 200 OK

Server: nginx/1.12.1

Date: Mon, 11 Jun 2018 15:37:47 GMT

Content-Type: text/html

Content-Length: 612

Last-Modified: Thu, 31 May 2018 09:28:16 GMT

Connection: keep-alive

ETag: "5b0fc030-264"

Accept-Ranges: bytes

https的访问测试

[[email protected] ~]# curl  -I --proxy 192.168.10.10:443 www.baidu.com

HTTP/1.1 200 OK

Server: nginx/1.12.1

Date: Mon, 11 Jun 2018 15:38:07 GMT

Content-Type: text/html

Content-Length: 277

Connection: keep-alive

Accept-Ranges: bytes

Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform

Etag: "575e1f5c-115"

Last-Modified: Mon, 13 Jun 2016 02:50:04 GMT

Pragma: no-cache

5、设置Linux客户端全局代理

[[email protected] ~]# vim /etc/profile

export http_proxy='192.168.10.10:80'

export http_proxy='192.168.10.10:443'

export ftp_proxy='192.168.10.10:80'

[[email protected] ~]# source /etc/profile

[[email protected] ~]# curl -I www.baidu.com:80

HTTP/1.1 200 OK

Server: nginx/1.12.1

Date: Mon, 11 Jun 2018 16:10:18 GMT

Content-Type: text/html

Content-Length: 277

Connection: keep-alive

Accept-Ranges: bytes

Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform

Etag: "575e1f5c-115"

Last-Modified: Mon, 13 Jun 2016 02:50:04 GMT

Pragma: no-cache

[[email protected] ~]# curl -I www.baidu.com:443

HTTP/1.1 200 OK

Server: nginx/1.12.1

Date: Mon, 11 Jun 2018 16:10:27 GMT

Content-Type: text/html

Content-Length: 277

Connection: keep-alive

Accept-Ranges: bytes

Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform

Etag: "575e1f59-115"

Last-Modified: Mon, 13 Jun 2016 02:50:01 GMT

Pragma: no-cache

上面结果就说明我们的服务端nginx正向代理和客户端使用nginx做为全局代理设置成功。

二、nginx反向代理介绍及配置

1、环境介绍

系统环境:centos7.3

代理服务器(nginx):192.168.10.10

后端服务器(apache):192.168.10.20

测试机:随便一台Linux或Windows都可以

2、反向代理简介

反向代理:指将自己作为代理服务器来接受Internet上的请求,然后将请求转发给后端的服务器,并将结果返回给客户端。而nginx是一个高性能的http和反向代理服务器,且占用内存极少,现在很多大型公司都在用它。

3、nginx反向代理配置

加到nginx配置文件http标签里面

[[email protected] ~]# vim /usr/local/nginx-1.12.1/conf/nginx.conf

upstream test {

server 192.168.10.20;

}

server {

listen   80;

server_name  192.168.10.20;

index  index.html index.htm;

location / {

proxy_pass http://test;

}

}

[[email protected] ~]# /usr/local/nginx-1.12.1/sbin/nginx -s reload

4、后端服务器配置

[[email protected] ~]# yum -y install httpd

[[email protected] ~]# echo '192.168.10.20' > /var/www/html/index.html

[[email protected] ~]# systemctl restart httpd

5、使用Linux客户端访问代理服务器测试

[[email protected] ~]# curl 192.168.10.10

192.168.10.20

原文地址:http://blog.51cto.com/longlei/2154851

时间: 2024-11-07 05:23:02

nginx正反向代理配置详解的相关文章

[转帖]Nginx的超时keeplive_timeout配置详解

Nginx的超时keeplive_timeout配置详解 https://blog.csdn.net/weixin_42350212/article/details/81123932 Nginx 处理的每个请求均有相应的超时设置.如果做好这些超时时间的限定,判定超时后资源被释放,用来处理其他的请求,以此提升 Nginx 的性能. keepalive_timeout HTTP 是一种无状态协议,客户端向服务器发送一个 TCP 请求,服务端响应完毕后断开连接. 如果客户端向服务器发送多个请求,每个请

nginx反向代理配置详解

反向代理配置 修改部署目录下conf子目录的nginx.conf文件(如/opt/nginx/conf/nginx.conf)内容,可调整相关配置. 将默认配置里面带#号注释内容去掉 grep -v "#" /opt/nginx/conf/nginx.conf > /opt/nginx/conf/nginx.confbak 将原先的配置修改名字备份一下,后面的没有注释内容的nginx.confbak修改名字为nginx.conf 反向代理配置示例: #定义Nginx运行的用户和用

NGINX源码安装配置详解(./configure),最全解析

NGINX ./configure详解 在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建"--without"表示禁用模块,也就是说这些模块在编译时会自动构建,若你想Nginx轻量级运行,可以去除一些不必要的模块. [[email protected] nginx-1.14.0]# ./configure --help => 查看安装配置项 --help 打印帮助信息. --prefix

nginx 服务器下载安装配置详解

近段时间用了nginx服务  作为总结写一篇博客 与大家分享:时间关系没有说的太过于详细甚至言语有些凌乱望见谅,有不足之处请斧正. 有这几个问题 与大家探讨一下 1 nginx是个什么东东?2为什吗要用nginx 3 如何用? 首先nginx和apache一样是一个web服务器.apache大家都知道 年代久远 世界第一大服务器.它是一个重量级服务器,不支持高迸发.运行数以万计的迸发访问,会导致apache消耗大量的内存,导致http请求响应效率降低,影响用户的体验. nginx的出现就是为了应

学习计划 nginx 中 php的配置详解

本章只看一个刚下载的nginx是如何支持php的 -- location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } 主要学习这里的配置问题 -- 首先看一下location块,这是一个正则匹配,说明了所有以 .php

nginx 中 php的配置详解

本章只看一个刚下载的nginx是如何支持php的 -- location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } 主要学习这里的配置问题 -- 首先看一下location块,这是一个正则匹配,说明了所有以 .php

nginx 编译安装与配置详解

一.编译安装 1.使用yum安装所需的包,虽然需要编译几个依赖包,pcre.zlib.openssl yum -y groupinstall "Development Tools""Server Platform Development" yum install pcre-devel zlib-devel openssl-devel gcc* (一般系统装好了,以下的这几个包openssl.zlib.pcre都已经安装上了,注意: pcre-devel zlib-d

Nginx + Tomcat 负载均衡配置详解

Nginx作为反向代理服务器,实现负载均衡.首先浏览器发起请求,到达Nginx,由Nginx将请求地址转发给相应的tomcat服务器,再由tomcat服务器将结果返回给Nginx,Nginx将结果再转发给浏览器. 在这过程中,对于浏览器来说,并不知道后端的存在, 相对于Tomact来说,当前的客户端是Nginx服务器.这就完成了一个代理的过程. 首先准备三台Linux服务器:IP地址分别为 192.168.1.61  192.168.1.62  192.168.1.63 其中61安装nginx服

Nginx配置文件(nginx.conf)配置详解

Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目.根据硬件调整,通常等于CPU数量或者2倍于CPU. error_log  logs/error.log; error_log  logs/error.log  notice; error_log  logs/error.log  info; 错误日志:存放路径. pid logs/nginx.pi