nginx根据URL分流

来源:互联网 发布:光学镜头的优化设计 编辑:程序博客网 时间:2024/04/28 13:50

原理介绍

URL分流

Nginx根据URL分发的2种方法
nginx配置url重写

配置文件

nginx.conf

user root;#user  nobody;worker_processes  1;#error_log  logs/error.log;#error_log  logs/error.log  notice;error_log  logs/error.log  info;#error_log  logs/error.log  debug;pid        /data/webapps/nginx/logs/nginx.pid;events {    worker_connections  1024;}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"';    log_format simple '$http_x_realip - $request';    access_log  logs/access.log;    sendfile        on;    #tcp_nopush     on;    client_max_body_size 0;    #keepalive_timeout  0;    keepalive_timeout  65;    #gzip  on;    ssi on;    ssi_silent_errors on;    include vhost/*.conf;}

erp.conf

upstream gray_server {                server 0.0.4.96:8082 weight=5;}upstream real_server {                server 0.0.4.95:8082 weight=5;}server {                listen       9090;                server_name  erp.local.cn;                access_log  logs/erp_access.log main;                include erp_gray_rewrite.conf;                location /gray_rewrite {                                rewrite /gray_rewrite(.*) /$1 break;                                access_log  logs/erp.log;                                error_log logs/erp.err;                                proxy_pass http://gray_server/;    }                location / {                                access_log  logs/old_erp.log;                                error_log logs/old_erp.err;                                proxy_pass http://real_server/;                }}

erp_gray_rewrite.conf

rewrite /(ab\.action.*) /gray_rewrite/$1 break;rewrite /(ac\.action.*) /gray_rewrite/$1 break;

命令行

启动

-c参数指定了要加载的nginx配置文件路径

cd sbin./nginx -c ../config/nginx.config

检查一下配置文件是否正确

以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:

nginx -t -c /usr/nginx/conf/nginx.conf 或者/usr/nginx/sbin/nginx -t 

平滑重启nginx

nginx -s reload