当前位置: > Linux服务器 > nginx >

nginx创建反向代理和虚拟主机的例子

时间:2014-07-05 12:39来源:linux.it.net.cn 作者:IT网

nginx创建反向代理和虚拟主机的例子,有需要的朋友可以参考下。

windows环境下做Nginx实验,用NPMserv工具搭建好系统运行环境。

1.编辑nginx\conf\nginx.conf
添加修改以下内容:
 

复制代码代码如下:

#user nobody;
worker_processes 1;
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid        logs/nginx.pid;
events {
    worker_connections 64;
}
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"';
    access_log logs/access.log main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout 0;
    keepalive_timeout 65;
    #设定请求缓冲
    client_header_buffer_size    1k;
    large_client_header_buffers 4 4k;
    #开启gzip模块
    gzip on;
    gzip_min_length 1100;
    gzip_buffers     4 8k;
    gzip_types       text/plain;
    output_buffers   1 32k;
    postpone_output 1460;
    #指向本地服务器的不同端口做虚拟主机
    upstream web1.it.net.cn {
        server 192.168.70.199:8001;
    }   
    upstream web2.it.net.cn {
        server 192.168.70.199:8002;
    }   
    upstream web3.it.net.cn {
        server 192.168.70.199:8003;
    } 
   #指向其他服务器做反向代理    
   upstream www.it.net.cn {
        server 192.168.70.17:80;    
    }
#整站做反向代理
server {
        listen       80;
        server_name www.it.net.cn;
        #charset koi8-r;
        access_log logs/host.access.log main;
        location / {
            #root   html;
            #index index.html index.htm;
           proxy_pass http://www.it.net.cn;
             include proxy.conf;
        }
 }
#将某个虚拟目录做反向代理
server {
        listen       80;
        server_name app.jbxue.com;
        #charset koi8-r;
        access_log logs/host.access.log main;
        location / {
            #root   html;
            index index.html index.htm;
            proxy_pass http://www.it.net.cn/apps/home/;
            include    proxy.conf;
        }
}
#为本地虚拟主机web3做反向代理
server {
        listen       80;
        server_name web3.jbxue.com;
        #charset koi8-r;
        access_log logs/host.access.log main;
        location / {
            #root   html;
            #index index.html index.htm;
            proxy_pass http://web3.it.net.cn;
            include proxy.conf;
}
         #location /NginxStatus {
                       # stub_status             on;
                       # access_log              on;
                        #auth_basic              "NginxStatus";
                        #auth_basic_user_file conf/htpasswd;
                #}
        #error_page 404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504 /50x.html;
        location = /50x.html {
            root   html;
        }
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index index.php;
        #    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny all;
        #}
    }

# 以下为指定虚拟机及端口号
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name somename alias another.alias;
    #    location / {
    #        root   html;
    #        index index.html index.htm;
    #    }
    #}
    server {
        listen          8001;
        server_name     web1.it.net.cn;
        access_log      logs/it1.access.log main;
        location / {
            index index.html;
            root html1;
        }
    }
    server {
        listen          8002;
        server_name     web2.it.net.cn;
        access_log      logs/it2.access.log main;
        location / {
            index index.html;
            root html2;
        }
    }
    server {
        listen          8003;
        server_name     web3.it.net.cn;
        access_log      logs/it3.access.log main;
        location / {
            index index.html;
            root html3;
        }
    }
}
 

2.vi proxy.conf
 

复制代码代码如下:
proxy_redirect          off;
proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffer_size       4k;
proxy_buffers           4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

3.重启nginx

4.测试:可以修改本地的host文件试试效果
127.0.0.1 web1.it.net.cn
127.0.0.1 web2.it.net.cn
127.0.0.3 web3.it.net.cn

在nginx下复制html文件夹为html1、html2、html3,即对应虚拟主机的主目录,然后进行测试。

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容