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

(0)

相关推荐

  • Linux VPS上配置Nginx反向代理的方法

    反向代理是什么? 反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部(或其他)网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端。 实现方法: ...

  • 在Linux系统下使用Docker以及Weave搭建Nginx反向代理

    Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...

  • Nginx反向代理和前端全缓存相关配置教程

    最近一直在研究这方面的配置,只是脚本比较复杂。在网上用力找了几天,主要教程还是那些东西。并且有点乱七八糟,笔者进行了一些整理。告诉你最简单的方法,来实现这二个方面的内容: 1.nginx最简单的反向代 ...

  • nginx反向代理到tomcat的多个项目

    安装nginx和tomcat、jdk就不说了。 首先,nginx设置转发 server { listen 80; server_name jiang.xxxt.com; location / { pr ...

  • linux系统中配置Nginx 拒绝代理访问指定IP的方法

    先大概说说简单的结构…前端一个Nginx反向代理,后端一个Nginx instance app for PHP…实际上就是个Discuz,之前面对CC攻击都是预警脚本或者走CDN,但是这次攻击者不再打 ...

  • linux中配置Nginx 拒绝代理访问

    先大概说说简单的结构…前端一个Nginx反向代理,后端一个Nginx instance app for PHP…实际上就是个Discuz,之前面对CC攻击都是预警脚本或者走CDN,但是这次攻击者不再打 ...

  • 在IIS7中应用Application Request Routing配置反向代理的图文教程

    在IIS7之前,在windows上要实现该功能却不是一件容易的事情,但是在IIS7上,通过Application Request Routing模块,我们可以轻松实现反向代理 在配置web服务器的时候 ...

  • Linux服务器反向代理软件varnish

    Varnish作为反向代理软件,应用于Web 前端,其良好的Cache性能使得网站承载能力有很大提升,下面记录下最近使用在Varnish学习与应用中的实践体会,本篇主要内容:安装 配置 监控。 一、v ...

  • Apache服务器中设置端口映射和反向代理的方法

    httpd.conf文件 ###new add for webui.cong### Include "E:/local/Wamp/bin/apache/Apache2.2.17/conf/webui_ ...