nginx反向代理配置

nginx反向代理配置
反向代理通过在nginx/conf/nginx.conf中的proxy_pass配置

什么是反向代理?
反向代理(Reverse Proxy)方式是指以代理服务器外网方式来接受internet上的连接请求,然后将请求转发给内网的服务器(tomcat),并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

启动一个Tomcat 127.0.0.1:8080

需要配置反向代理,则需要配置一下nginx安装目录下的conf文件夹——nginx.conf

原配置文件含义

server {
        listen       80;     #1默认监听端口号
        server_name  localhost;    #2当访问localhost:80时

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {       # 3.     /表示拦截所有请求
            root   html;
            index  index.html index.htm;         #4. 转发到index.html
        }

        #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;
        #}
    }

nginx默认监听端口号为80,当请求开头为localhost或localhost:80时候,拦截所有请求,并转发到index.html,即nginx的默认页面

我想在本地通过访问www.nginx.cn跳转到我的本地项目localhost:8080/index,则这么配置:

server {
        listen       80;
        server_name  www.nginx.cn;
        location / {
		    proxy_pass  http://localhost:8080/index;
			index  index.html index.htm;
        }
    }

重启nginx /usr/local/nginx/sbin/nginx –s reload

server{}可以配置多个,这个过程中我们隐藏了我们真实的ip地址,提高了安全性

负载均衡策略
负载均衡策略配置在nginx/conf/nginx.conf中,根据upstream backserver{}配置,注意:配置在server{}外面

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。如有两台tomcat,tomcat1和tomcat2,那么先访问tomcat1,再访问tomcat2,再访问tomcat1,再访问tomcat2…以此循环。适用场景:两台服务器配置相近情况,否则对于配置低的服务器是性能瓶颈。


upstream mdedit { 
    server 192.168.1.10; 
    server 192.168.1.11; 
}
server {
        listen       80;
        server_name  www.nginx.cn;
        location / {
		    proxy_pass  http://mdedit;
			index  index.html index.htm;
        }
    }

重启nginx sbin/nginx -s reload

你可能感兴趣的:(nginx)