Nginx反向代理以及配置优化

   下面配置包含了,nginx配置的一个比较全面的反向代理的例子:

  user www www

  worker_processes 8;

  events {

  use epoll;

  worker_connections 10240;

  }

  pid /opt/work/log/nginx.pid;

  error_log /dev/null error;

  http {

  include /opt/nginx/conf/mime.types;

  default_type text/html;

  log_format pv '[$time_local]|$remote_addr|$cookie_SUV|$args|$http_referer|$http_user_agent';

  log_format main '$request_time $remote_addr $cookie_SUV [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' '"$cookie_Fr"';

  log_format pbmain '$remote_addr - $remote_user [$time_local] "$request" '

  '$status $body_bytes_sent "$http_user_agent"';

  access_log off;

  sendfile on;

  keepalive_timeout 0;

  gzip on;

  #允许客户端请求的最大单个文件字节数

  client_max_body_size 200m;

  upload_progress proxied 8m;

  #DNS服务器ip

  resolver 192.168.1.1;

  proxy_set_header Host $http_host;

  proxy_set_header x-forwarded-for $remote_addr;

  proxy_cache_key "$scheme$host$request_uri";

  proxy_cache_path /opt/work/cache levels=1:2:1 keys_zone=js_cache:100m max_size=1024m inactive=15d;

  proxy_cache_valid any 15d;

  upstream backend {

  ip_hash;

  server 127.0.0.1:8080 weigth=4 max_fails=2 fail_timeout=30s;

  server 127.0.0.1:8081 weigth=3 max_fails=2 fail_timeout=30s;

  }

  upstream liveBackends {

  server 192.168.1.15:9090;

  server 192.168.1.16:9090;

  #备机

  server 192.168.1.17:9090 backup;

  }

  server{

  listen 80;

  server_name www.myserver1.com;

  error_log /opt/work/log/nginx_error.log error;

  client_max_body_size 200m;

  proxy_set_header Host $http_host;

  proxy_set_header x-forwarded-for $remote_addr;

  proxy_buffer_size 64k;

  proxy_buffers 32 64k;

  #查看服务状态

  location /server-status {

  stub_status on;

  access_log off;

  allow all;

  }

  location ^~ /pv {

  access_log /opt/work/log1/nginx_access.log pv;

  proxy_pass http://backend;

  }

  location ^~ /cc.do

  {

  proxy_pass http://backend;

  }

  location ^~/favicon.ico{

  alias /usr/local/src/web/favicon.ico;

  }

  location ^~ /pv2 {

  access_log /opt/work/log2/nginx_access.log pv;

  access_log /opt/work/log/main/nginx_access_main.log main;

  error_log /opt/work/log/error/nginx_error.log error;

  return 204;

  }

  location /proxy/

  {

  #后端返回502,504,执行超时等错误,自动将请求转发到upstream负载池中另一台服务器

  proxy_next_upstream http_502 http_504 error timeout invalid_header;

  proxy_pass http://backend;

  }

  #禁止访问除以外的其他目录

  location /{

  deny all;

  }

  }

  server{

  listen 80;

  server_name www.myserver2.com;

  root /www;

  location ~ t1.(gif)$ {

  root /www;

  expires -1;

  access_log /data/log/access.log pbmain;

  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  }

  location ~ t2.(gif)$ {

  root /www;

  expires -1;

  access_log /data/log/access.log pbmain;

  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  if ($args ~ "ltype=1(&|$)") {

  proxy_pass http://liveBackends;

  }

  }

  location /server-status {

  stub_status on;

  access_log off;

  allow 10.0.0.0/8;

  allow 192.168.0.0/16;

  deny all;

  }

  error_page 404 /404.html;

  error_page 500 502 503 504 /50x.html;

  location = /50x.html {

  root html;

  }

  }

  }

  配置完后通过命令 nginx -t (或者nginx -t -c 配置文件路径)来检查配置文件是否有语法错误,没有错误后就可以启动了 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ,用默认路径配置文件的话可以不加-c

  从容停止kill -QUIT nginx主进程号

  平滑重启 kill -HUP nginx主进程号

  配置文件修改可以通过不停机reload的方式实现加载。 nginx -s reload

时间: 2024-08-01 18:58:28

Nginx反向代理以及配置优化的相关文章

Nginx反向代理websocket配置实例_nginx

最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版本才支持 websocket 反向代理,所以要想使用支持 websocket 的功能,必须升级到 1.3 以后的版本,因此我这边是下载的 Tengine 的最新版本测试的 1.下载 tengine 最近的源码 复制代码 代码如下: wget http://tengine.taobao.org/dow

nginx反向代理缓存配置步骤详解

这里给出示例,并详解. http { [...] [...]   proxy_cache_path  /data/nginx/cache/one  levels=1:2   keys_zone=one:10m max_size=10g; proxy_cache_key  "$host$request_uri";   server {     server_name www.centos.bz centos.bz;     root /home/www.centos.bz/web;   

配置nginx反向代理用做内网域名转发

情景 由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口.非80端口的映射在访问的时候要域名加上端口,比较麻烦.并且公司入口路由最多只能做20个端口映射.肯定以后不够用. 然后k兄就提议可以在内网搭建个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用

自动化Nginx服务器的反向代理的配置方法

  这篇文章主要介绍了自动化Nginx服务器的反向代理的配置方法,反向代理是Nginx服务器的招牌功能,需要的朋友可以参考下 如果可以减少过多的外部隔离的API和简化部署的细节 这会是非常好的. 在以前的文章中,我解释了"一些使用反向代理的好处".在我目前的项目里,我们已经构建分布式面向服务的架构,也显式提供了一个HTTP API,我们使用反向代理将请求路由通过API路由给单个组件.我们选择了Nginx Web这个优秀的服务器作为我们的反向代理,它快速.可靠且易于配置.我们通过它将多个

基于CentOS 7配置Nginx反向代理

Nginx作为反向代理服务器被广泛使用在各大互联网企业.它简单易用,可以根据业务的需求将其不同的业务类型代理至不同的服务器,将整个站点请求压力按类型分摊到不同的服务器.该方式使的整个站点请求性能得以极大的提升.本文简要描述了Nginx几种不同情形的代理演示,供大家参考. 一.反向代理及演示环境描述 1.反向代理 在计算机网络中,反向代理是一种代理服务器,代表客户端从一个或多个服务器检索资源.然后将这些资源返回给客户机,就像它们源自Web服务器本身一样.与正向代理相反,正向代理是与其关联的客户端联

【整理】自动的 Nginx 反向代理配置

本文内容参考自< 自动的 Nginx 反向代理配置 >.  个人觉得:名字翻译成<自动化 Nginx 反向代理配置>更为贴切.  [一句话总结] 介绍了如何构建一个能够自动化配置 nginx 反向代理的方式.即将后端服务的部署与前端 nginx 的配置更改进行解耦.  [知识点]  对于 API 的使用者来说所有操作都是在同一个 URL 空间里进行的,而实际上是根据 URL 中不同的顶级"段"来进行路由的. 自动化配置的流程:当增加处理新"段"

tomcat集群-nginx 反向代理三个本地tomcat 负载均衡配置 无法加载js css 图片等 也不报错

问题描述 nginx 反向代理三个本地tomcat 负载均衡配置 无法加载js css 图片等 也不报错 打开速度非常慢,到最后js css无法加载是什么问题 我的项目是ssh+jquery+easyui的 单独访问tomcat完全正常 访问nginx就这样了 .求大神指点啊 访问webapp根目录是可以的 我的页面都是在web-inf目录下的貌似不行 nginx配置如下: #user nobody; worker_processes 1; #error_log logs/error.log;

配置nginx反向代理jira并实现https

配置nginx反向代理jira并实现https 配置Tomcat 在本文中,我们设置可以在地址http://jira.aniu.so/jira(标准HTTP端口80)上访问JIRA,而JIRA本身可以使用上下文路径/ jira监听端口8080. 修改配置文件server.xml(在jira安装目录下) 更改前: <Context docBase="${catalina.home}/atlassian-jira" path="" reloadable="

Nginx学习之反向代理WebSocket配置实例

写在开始 去年,做过一款竞赛打分的APP.具体需求,同组教师之间可以相互通信,及时通知同组人员,其他组员做了那些操作(当然,这只是针对特定操作). 实现方案 采用目前比较成熟的WebSocket技术,WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择.其为HTML5的一部分,WebSocket相较于原来开发这类app的方法来说,其能使开发更加地简单.大部分现在的浏览器都支持WebSocket,比如Firefox,IE,Chrome,Safari,Opera,