• nginx 反向代理Apache


    2014年1月13日 18:15:25

    同一个域名下,不同uri走不同的应用(不同的web根目录)

    实现方式:

    Apache分别监听两个端口,对应不同的应用

    nginx监听80端口,利用location指令根据匹配目录的不同将请求转发到不同的端口

    nginx和Apache都在同一台windows上

    nginx下载windows版本,解压->简单配置下->保证能启动nginx

    命令行启动时要注意:要进入到解压文件内去执行nginx.exe不能简单的写到环境变量了事

    下边是我的主配置文件(这些配置足够启动nginx了):

    nginx.conf

     1 #user  nobody;
     2 worker_processes  1;
     3 
     4 error_log  F:/vc9server/nginx/logs/error.log;
     5 error_log  F:/vc9server/nginx/logs/error.log  notice;
     6 error_log  F:/vc9server/nginx/logs/error.log  info;
     7 
     8 pid        F:/vc9server/nginx/logs/nginx.pid;
     9 
    10 events {
    11     worker_connections  1024;
    12 }
    13 
    14 http {
    15     include       mime.types;
    16     default_type  application/octet-stream;
    17 
    18     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    19                      '$status $body_bytes_sent "$http_referer" '
    20                      '"$http_user_agent" "$http_x_forwarded_for"';
    21 
    22     access_log  F:/vc9server/nginx/logs/access.log  main;
    23 
    24     sendfile        on; #跟内核交互用 缓存
    25     #tcp_nopush     on;
    26 
    27     #keepalive_timeout  0;
    28     keepalive_timeout  65;
    29     
    30     server_names_hash_bucket_size 64;
    31     include        apache.conf; #主要的反向代理配置都写在这个文件里了
    32 }

    apache.conf

     1 ##2014年1月11日
     2 #反向代理
     3 upstream zend 
     4 {
     5     server 127.0.0.1:8089;
     6 }
     7 
     8 upstream yaf 
     9 {
    10     server 127.0.0.1:8088;
    11 }
    12 
    13 server 
    14 {
    15     listen       80;
    16     server_name  www.example1.com;
    17     
    18     location ^~ /abc {
    19         proxy_pass      http://zend; #转发到上边定义的zend代理中去
    20 
    21         proxy_redirect          off;
    22         proxy_set_header        Host $host;
    23         proxy_set_header        X-Real-IP $remote_addr;
    24         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    25     }
    26     
    27     location / 
    28     {
    29         proxy_pass      http://yaf; #转发到上边定义的yaf代理中去
    30 
    31         proxy_redirect          off;
    32         proxy_set_header        Host $host;
    33         proxy_set_header        X-Real-IP $remote_addr;
    34         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    35         proxy_set_header         X-Scheme $scheme;
    36     }
    37 }    
    38 server 
    39 {
    40     listen       80;
    41     server_name  www.example2.com;
    42         
    43     location / 
    44     {
    45         proxy_pass      http://zend; #转发到zend代理
    46 
    47         proxy_redirect          off;
    48         proxy_set_header        Host $host;
    49         proxy_set_header        X-Real-IP $remote_addr;
    50         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    51     }
    52 }

    解释:

    1.请求 example1 时

    URI为/abc开头的转发到上边定义的zend代理,其余的URI请求转到yaf代理

    2.请求 example2 时

    将所有请求转发到zend代理

    3.配置中的proxy_set_header 是将nginx得到的请求信息(头信息等等)复制一份给代理服务器

    4.nginx指令要有分号结尾,监听多个域名时,域名间用空格隔开后再以分号结尾

    最后

    在Apache中监听apache.conf中zend,yaf两个代理指定的域名+端口 或 ip+端口,并作相应的配置

    nginx 和 Apache重启后浏览器里访问试试

  • 相关阅读:
    Arduino 各种模块篇 DHT11 温度湿度 数字模块 单总线
    Arduino 各种模块篇 火焰传感器
    exception
    google c++ code style
    昙花一现
    晏才宏
    win 2003 玩3D游戏设置
    生成多文件的Assembly 的两种方法
    怎样使自己写的程序集出现在Visual Studio Add Reference 的 .NET Tab页中
    安装将仅在管理模式下运行,安装终止
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/3517907.html
Copyright © 2020-2023  润新知