nginx反向代理配置怎么实现?原理是什么?

TheDisguiser 2020-05-03 16:40:08 java常见问答 7365

上回我们讲到了NGINX反向代理的基本概念与原理,这次我们就来说说它该怎么实现,跟小编一起看看吧。

先回顾一下之前的原理吧,NGINX反向代理是指以代理服务器方式来接受Internet上的连接请求,然后把请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器了。

一般代理服务器,只需要于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并把本来要直接发送到Web服务器上的http请求发送到代理服务器中。如果一个代理服务器能够代理外部网络上的主机,访问内部网络时,它代理服务的方式就称为反向代理服务。

反向代理实现

一、首先在IIS中部署两个站点,localhost:86 、localhost:6000

二、修改C:windowssystem32driversetchosts文件,增加 127.0.0.1 test1.yubay.cn 、127.0.0.1 test2.yubay.cn 两个Ip 域名映射

三、修改Nginx配置文件nginx.conf,增加两个server节点

#
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 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"';#
    access_log logs / access.log main;
    sendfile on;#
    tcp_nopush on;#
    keepalive_timeout 0;
    keepalive_timeout 65;#
    gzip on;
    server
    {
        listen 81;
        server_name test1.yubay.cn;
        location /
        {
            proxy_pass http: //127.0.0.1:86;
                index index.html index.htm;
        }
    }
    server
    {
        listen 81;
        server_name test2.yubay.cn;
        location /
        {
            proxy_pass http: //127.0.0.1:5000;
                index index.html index.htm;
        }
    }
    server
    {
        listen 81;
        server_name localhost;#
        charset koi8 - r;#
        access_log logs / host.access.log main;
        location /
        {
            root html;
            index index.html index.htm;
        }#
        error_page 404 / 404. html;#
        redirect server error pages to the static page / 50 x.html#
        error_page 500 502 503 504 / 50 x.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;#
    }#
}#
HTTPS server## server
{
    #
    listen 443 ssl;#
    server_name localhost;#
    ssl_certificate cert.pem;#
    ssl_certificate_key cert.key;#
    ssl_session_cache shared: SSL: 1 m;#
    ssl_session_timeout 5 m;#
    ssl_ciphers HIGH: !aNULL: !MD5;#
    ssl_prefer_server_ciphers on;#
    location /
    {
        #
        root html;#index index.html index.htm;#
    }#
}
}

四、启动Nginx,start nginx

浏览器访问 http://test1.yubay.cn:81时 、http://test2.yubay.cn:81 就会跳转到我们部署在IIS上的实际站点

nginx反向代理配置

nginx反向代理配置

五、记得停止nginx ,nginx -s stop

以上就是本文的全部了,想知道更多Java常见问答内容的话,请一直关注我们网站了解吧。