(如有错漏之处,敬请指正)

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正向代理与反向代理的配置相关推荐

  1. 正向代理和反向代理的区别Nginx配置虚拟主机流程(后续更新)

    目录 目标 安装Nginx 配置虚拟主机 准备 方法一 方法二(推荐) 验证虚拟主机 正向代理和反向代理的区别 区别&案例 正向代理和反向代理流程 目标 熟练在Linux安装单机Nginx: ...

  2. [转]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    文章目录 前言 一.nginx简介 1. 什么是 nginx 和可以做什么事情 2.Nginx 作为 web 服务器 3. 正向代理 4. 反向代理 5. 负载均衡 6.动静分离 二.Nginx 的安 ...

  3. 浅析Nginx 正向代理与反向代理

    1.正向代理和反向代理的概念 无论是正向代理,还是反向代理,说到底,就是代理模式的衍生版本罢了.我们都学习过代理设计模式,都知道代理模式中有代理角色和被代理角色,为什么这么说,因为这两个角色对于我们理 ...

  4. nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全

    文章目录 前言 一.nginx简介 1. 什么是 nginx 和可以做什么事情 2.Nginx 作为 web 服务器 3. 正向代理 4. 反向代理 5. 负载均衡 6.动静分离 二.Nginx 的安 ...

  5. Nginx 正向代理和反向代理

    前言 最近在捣腾代理,要做个内网yum源代理,之前没接触过代理这些个东西,折腾完记录一下吧. 一.下载源码 目前Nginx一般都是使用源码编译,没有现成的rpm包.下载网址:http://nginx. ...

  6. Nginx正向代理和反向代理的区别

    正向代理与反向代理的区别: 1.正向代理相对于目标服务器而言隐藏了客户端的真实IP地址,因为对于目标服务器而言所有请求都是从正向代理服务器发出的,正向代理主要是为了突破网络访问限制,比如ke xue上 ...

  7. Nginx:正向代理与反向代理

    什么是Nginx? Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.  Nginx是一款轻量级的WEB服务器/反向代理服务器及电子邮件(IMAP ...

  8. Nginx -- 正向代理和反向代理粗解

    正向代理:   有一些网站我们无法访问,如国外的网站,或者说某些公司内部的网站,我们输入完整的url无法访问,这时候我们就可以使用正向代理,让可以访问这些url的代理服务器作为正向代理服务器,接收客户 ...

  9. nginx正向代理,反向代理概念

    正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连上 ...

  10. Nginx之负载均衡,正向代理和反向代理

    正向代理( Forward Proxy ): 定义:    是指是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容, 客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服 ...

最新文章

  1. DOM+XPath提取规则注记!
  2. windows server 2008下搭建DHCP服务器
  3. Framebuffer原理、使用、测试系列文章
  4. 全球及中国人寿保险产业盈利能力与十四五营销策略咨询报告2022版
  5. 《迷宫》之站立会议—5.15
  6. C语言fgets函数了解
  7. Oracle表空间的创建
  8. 帝国cms php调用字段,帝国cms模板教程之栏目自定义字段调用教程及代码
  9. java对象描述开车_java面向对象
  10. 解决Debug certificate expired的问题 - 转
  11. 伍斯特理工学院计算机硕士怎么样,美国伍斯特理工学院研究生专业排名如何?...
  12. 如何批量将多个 PDF 文档转为 XPS 格式
  13. 2018年Android面试题含答案--适合中高级(上)
  14. github 乱码网页排版
  15. Photon 使用心得
  16. microLite_timer,简洁、小巧精干的软件定时器
  17. 秋天NET快速强签名工具V1.1
  18. sql注入--基本注入语句学习笔记
  19. 生成前端海报的 N 种方案和优劣
  20. 五脚18.8数码管显示

热门文章

  1. 音频-DSD-Delta-Sigma
  2. activiti complete流程
  3. Activiti的介绍
  4. AutoCAD .NET开发大师Kean有价值的博客 2006年8月 .NET内容整理
  5. 农村大学生的逆袭009
  6. 1024程序员节,北大成立计算机学院!杨芙清任名誉院长
  7. R语言绘图——小提琴图
  8. C++实现3型文法转换词法生成器
  9. 脑电信号处理——加入通道注意力(利用可训练张量)
  10. 2017年8月6日 星期日 --出埃及记 Exodus 28:28