nginx正向代理与反向代理的配置
(如有错漏之处,敬请指正)
nginx是什么?
戳这里了解nginx概念
今年年初因为个需求才开始认识nginx的,对方只提供了一个端口访问权限给我们,无法承担起3、4个应用的通信需求,故引入了nginx。nginx也是软件负载均衡的主流中间键,我之前都是通过f5交换机来实现的负载均衡(原来公司有钱任性哈哈)
测试虚拟机版本为:
CentOS Linux release 7.3.1611 (Core)
nginx版本为:
nginx version: nginx/1.10.1
安装路径为:
/usr/local/nginx
以下用到的nginx的重启操作步骤分两步:
先使用 nginx -t 确认配置信息是否正确,如提示如下信息,则配置无误。
ginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
然后使用 nginx -s reload 重启即可
nginx的配置
nginx安装后主要配置的文件夹为conf,其中最为重要的配置文件是nginx.conf,如下:
user "具体用户";
worker_processes 2; #设置值和CPU核心数一致
error_log /usr/local/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{use epoll;worker_connections 65535;
}
http
{include mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';#charset gb2312;include /usr/loca/nginx/conf.d/*.conf;server_names_hash_bucket_size 128;client_header_buffer_size 32k;large_client_header_buffers 4 32k;client_max_body_size 8m;sendfile on;tcp_nopush on;keepalive_timeout 60;tcp_nodelay on;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_vary on;#limit_zone crawler $binary_remote_addr 10m;#下面是server虚拟主机的配置server{listen 80;#监听端口server_name localhost;#域名index index.html index.htm index.php;root /usr/local/nginx/html;#站点目录location ~ .*\.(php|php5)?${#fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)${expires 30d;# access_log off;}location ~ .*\.(js|css)?${expires 15d;# access_log off;}access_log off;}
}
我在conf文件夹外部建了个conf.d的文件夹用于存放我新增的nginx配置。通过在上面nginx.conf中添加 include /usr/loca/nginx/conf.d/*.conf来引入外部的配置文件。
nginx的正向代理配置
目标效果图如下
由于没有环境,只能通过抠脚的方式模拟
正向代理的配置/usr/loca/nginx/conf.d/ng.conf文件内容如下:
server {# 配置DNS解析IP地址,比如 Google Public DNS,以及超时时间(5秒)# 监听端口listen 8081;access_log /usr/local/nginx/access.log;error_log /usr/local/nginx/error.log;location / {# 配置正向代理参数proxy_pass http://192.168.79.129:8080/;# 解决如果URL中带"."后Nginx 503错误proxy_set_header Host $http_host;# 配置缓存大小proxy_buffers 256 4k;# 关闭磁盘缓存读写减少I/Oproxy_max_temp_file_size 0;# 代理连接超时时间proxy_connect_timeout 30;# 配置代理服务器HTTP状态缓存时间proxy_cache_valid 200 302 10m;proxy_cache_valid 301 1h;proxy_cache_valid any 1m;}
}
以上配置大致意思就是当我请求 nginx 服务(本机)http://localhost:8081时,请求会转发到 http://192.168.79.129:8080这个地址。日志文件分别生成在
access_log /usr/local/nginx/access.log
error_log /usr/local/nginx/error.log
测试
使用 curl ‘http://localhost:8081’ 命令测试,成功返回tomcat首页的html。
同时查看日志文件access.log可以看到如下信息
127.0.0.1 - - [19/Mar/2019:23:13:53 +0800] "GET / HTTP/1.1" 200 11250 "-" "curl/7.43.0"
nginx的反向代理
目标的效果图如下
因为同样抠脚的原因我的结构如下
反向代理的配置/usr/loca/nginx/conf.d/ng2.conf文件内容如下:
upstream apachephp {server localhost:8080; #引流部分,可配置多个服务地址
}
server {listen 8082;#对外提供8082端口#server_name www.quancha.cn;#access_log logs/quancha.access.log main;#error_log logs/quancha.error.log;#root html;#index index.html index.htm index.php;## send request back to apache ##location / {proxy_pass http://apachephp;}}
以上配置大致意思就是当我请求 nginx 服务(本机)http://localhost:8082时,请求会转发到多个服务地址里,本样例的服务地址就是 http:// localhost:8080这个地址。
测试
通过使用 curl ‘http://localhost:8082’ 命令测试,成功返回tomcat首页的html
同时查看日志文件access2.log可以看到如下信息
127.0.0.1 - - [19/Mar/2019:23:13:56 +0800] "GET / HTTP/1.1" 200 11250 "-" "curl/7.43.0"
总结
这次验证只是简单的对nginx的正向、反向代理功能进行验证。nginx的负载均衡以及性能的优化待下次进一步的跟进(没有测试环境啊~尬住)。
nginx正向代理与反向代理的配置相关推荐
- 正向代理和反向代理的区别Nginx配置虚拟主机流程(后续更新)
目录 目标 安装Nginx 配置虚拟主机 准备 方法一 方法二(推荐) 验证虚拟主机 正向代理和反向代理的区别 区别&案例 正向代理和反向代理流程 目标 熟练在Linux安装单机Nginx: ...
- [转]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
文章目录 前言 一.nginx简介 1. 什么是 nginx 和可以做什么事情 2.Nginx 作为 web 服务器 3. 正向代理 4. 反向代理 5. 负载均衡 6.动静分离 二.Nginx 的安 ...
- 浅析Nginx 正向代理与反向代理
1.正向代理和反向代理的概念 无论是正向代理,还是反向代理,说到底,就是代理模式的衍生版本罢了.我们都学习过代理设计模式,都知道代理模式中有代理角色和被代理角色,为什么这么说,因为这两个角色对于我们理 ...
- nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
文章目录 前言 一.nginx简介 1. 什么是 nginx 和可以做什么事情 2.Nginx 作为 web 服务器 3. 正向代理 4. 反向代理 5. 负载均衡 6.动静分离 二.Nginx 的安 ...
- Nginx 正向代理和反向代理
前言 最近在捣腾代理,要做个内网yum源代理,之前没接触过代理这些个东西,折腾完记录一下吧. 一.下载源码 目前Nginx一般都是使用源码编译,没有现成的rpm包.下载网址:http://nginx. ...
- Nginx正向代理和反向代理的区别
正向代理与反向代理的区别: 1.正向代理相对于目标服务器而言隐藏了客户端的真实IP地址,因为对于目标服务器而言所有请求都是从正向代理服务器发出的,正向代理主要是为了突破网络访问限制,比如ke xue上 ...
- Nginx:正向代理与反向代理
什么是Nginx? Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务. Nginx是一款轻量级的WEB服务器/反向代理服务器及电子邮件(IMAP ...
- Nginx -- 正向代理和反向代理粗解
正向代理: 有一些网站我们无法访问,如国外的网站,或者说某些公司内部的网站,我们输入完整的url无法访问,这时候我们就可以使用正向代理,让可以访问这些url的代理服务器作为正向代理服务器,接收客户 ...
- nginx正向代理,反向代理概念
正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连上 ...
- Nginx之负载均衡,正向代理和反向代理
正向代理( Forward Proxy ): 定义: 是指是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容, 客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服 ...
最新文章
- DOM+XPath提取规则注记!
- windows server 2008下搭建DHCP服务器
- Framebuffer原理、使用、测试系列文章
- 全球及中国人寿保险产业盈利能力与十四五营销策略咨询报告2022版
- 《迷宫》之站立会议—5.15
- C语言fgets函数了解
- Oracle表空间的创建
- 帝国cms php调用字段,帝国cms模板教程之栏目自定义字段调用教程及代码
- java对象描述开车_java面向对象
- 解决Debug certificate expired的问题 - 转
- 伍斯特理工学院计算机硕士怎么样,美国伍斯特理工学院研究生专业排名如何?...
- 如何批量将多个 PDF 文档转为 XPS 格式
- 2018年Android面试题含答案--适合中高级(上)
- github 乱码网页排版
- Photon 使用心得
- microLite_timer,简洁、小巧精干的软件定时器
- 秋天NET快速强签名工具V1.1
- sql注入--基本注入语句学习笔记
- 生成前端海报的 N 种方案和优劣
- 五脚18.8数码管显示