nginx 根据网址进行不同反向代理方法
来源:互联网 发布:python元组转化为列表 编辑:程序博客网 时间:2024/06/16 01:39
应用场景,win下面根据不同的网址代理到不同的php.exe
虚拟配置文件
# vhost/baidu.com.confserver { listen 80; listen 443 ssl; server_name local.baidu.com www.baidu.com test.baidu.com; root d:/website/baidu.com/src/public; #root d:/website/baidu.com/src; index index.html index.htm index.php; ssl on; ssl_certificate d:/website/ssl/www.crt; ssl_certificate_key d:/website/ssl/www.com.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; set $pass_to php_pool_pc ; set $log_upstream 0; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?_route_=$1 last; break; } if ( $request_uri ~ ^$ ) { set $pass_to php_pool ; } if ( $query_string ~ route=journal2 ) { set $pass_to php_pool_pc2 ; } if ( $query_string ~ route=catalog) { set $pass_to php_pool_pc3 ; } if ( $query_string ~ "route=catalog/product" ) { set $pass_to php_pool_pc_admin ; } if ( $request_uri ~ ^/admin ) { set $pass_to php_pool_pc_admin ; } location ~ \.php$ { set $log_upstream 1; add_header X-PASS-TO "$pass_to" ; fastcgi_pass $pass_to; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } access_log logs/pc-upstream.log upstream_log if=$log_upstream; access_log logs/pc.log main;}
这算是一个特别蛋疼的解决方案,因为 win下面没有php-fpm,自动按需进行启动新进程。如果php特别稀烂的时候,就无法形容了。
- 新增了 add_header X-PASS-TO 为了方便调试
- 注意
set $pass_to php_pool_pc
; 必须在 rewrite 之前,否则会报错$pass_to
为空 500。
欢迎交流 coconets@163.com
nginx配置文件
# nginx.conf#user nobody;worker_processes 2;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid 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 upstream_log '[$time_local] $remote_addr - $remote_user - $server_name ' ' To: $upstream_addr: $request upstream_response_time $upstream_response_time, request_time= $request_time'; #access_log logs/access.log main; server_names_hash_bucket_size 512; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; client_max_body_size 120M; client_body_buffer_size 128k; gzip on; upstream php_pool { server 127.0.0.1:9000 weight=1; server 127.0.0.1:9001 weight=1 backup; } upstream php_pool_pc { server 127.0.0.1:9002 weight=1; server 127.0.0.1:9003 weight=1; server 127.0.0.1:9004 weight=1 backup; } upstream php_pool_pc2 { server 127.0.0.1:9005 weight=1; server 127.0.0.1:9006 weight=2; server 127.0.0.1:9007 weight=1 backup; } upstream php_pool_pc3 { server 127.0.0.1:9008 weight=1; server 127.0.0.1:9009 weight=1 backup; server 127.0.0.1:9010 weight=1 backup; } upstream php_pool_pc_admin { server 127.0.0.1:9011 weight=1; server 127.0.0.1:9012 weight=1; server 127.0.0.1:9013 weight=1; server 127.0.0.1:9014 weight=1 backup; server 127.0.0.1:9015 weight=1 backup; } upstream php_pool_mx { server 127.0.0.1:9016 weight=1; } upstream php_pool_pay{ server 127.0.0.1:9017 weight=1; server 127.0.0.1:9018 weight=1 backup; server 127.0.0.1:9019 weight=1 backup; } include vhost/*.conf;}
阅读全文
0 0
- nginx 根据网址进行不同反向代理方法
- nginx 根据不同url反向代理到不同服务器
- 使用NGINX 来进行反向代理
- nginx实战--nginx反向代理同一域名不同端口
- 跨域访问方法-Nginx反向代理
- Nginx反向代理Nginx
- Nginx反向代理Nginx
- Nginx配置二级目录反向代理本机不同端口
- Drupal 使用Nginx进行反向代理的配置
- 使用nginx配置nodejs服务进行反向代理
- 利用 Nginx 进行反向代理和负载均衡
- nginx 反向代理
- nginx 反向代理
- Nginx 反向代理https
- Nginx 反向代理设置
- nginx反向代理
- nginx 反向代理上网
- Nginx 反向代理设置
- JVM笔试+面试题总结
- python 文件合并小工具
- 普通红包算法
- 有关Topological-sort(拓扑排序)的belabela...
- Git上传项目至Github
- nginx 根据网址进行不同反向代理方法
- android popupwindow仿微信右上角菜单
- 人工神经网络和其他
- Percona XtraDB Cluster规划实施
- 关于Vbox
- 第十一周项目3
- JSON的简单介绍以及C语言的JSON库使用
- 基于实数编码的求函数最小值遗传算法
- Git 修改Git的提交方式 https -> ssh