nginx学习之反向代理

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

      使用nginx反向代理主要是分发用户请求,将用户请求分发到合适的服务器上,使用同一域名访问不同系统。结构如下:



下载nginx稳定版,官网下载。 下载解压如下:

打开CMD,输入 start nginx 启动nginx后,网页输入localhost出现 Welcome to nginx,nginx启动成功。


配置nginx的配置文件(conf/nginx.conf)(简单使用静态文件)

#user somebody;

#启动进程,通常设置成和cpu的数量相等
worker_processes  1;

#全局错误日志
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#PID文件,记录当前启动的nginx的进程ID
#pid        logs/nginx.pid;

#工作模式及连接数上限
events {
    worker_connections 1024;    #单个后台worker process进程的最大并发链接数
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
    #设定mime类型(邮件支持类型),类型由mime.types文件定义
    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;
    rewrite_log     on;
    
    sendfile        on;
    #tcp_nopush     on;

    #连接超时时间
    keepalive_timeout  120;
    tcp_nodelay        on;
    
    #gzip压缩开关
    #gzip  on;
 
    #HTTP服务器
    server {
        listen       80;    #监听80端口,80端口是知名端口号,用于HTTP协议
        server_name  image.hello.com;   #定义使用www.xx.com访问


        #charset koi8-r;


        #access_log  logs/host.access.log  main;


	proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


        location / {
	    root  F:\temp\image;   #静态文件位置
        }
        
    }
}

保存后,在命令行输入 nginx -s reload,重载配置  。

在目录下放一张图片后,更改 host:在 C:\Windows\System32\drivers\etc 目录下的hosts文件中添加一条 DNS 记录

127.0.0.1 image.hello.com

在网页上输入 http://image.hello.com/beauty.jpeg 即可访问到该图片


所以最主要的是配置相关的 server, 可以配置多个server,注意端口


server {
        listen       80;
        server_name  manage.hello.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

	proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
	    proxy_pass http://127.0.0.1:8081;
	    proxy_connect_timeout 600;
	    proxy_read_timeout 600;
        }
        
    }
	
	server {
        listen       80;
        server_name  admin.hello.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

	proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
	    proxy_pass http://127.0.0.1:8082;
	    proxy_connect_timeout 600;
	    proxy_read_timeout 600;
        }
        
    }

hosts文件中添加两条 DNS 记录, 注意web启动绑定的端口要和nginx中的 置的端口保持一致。

即可通过域名访问不同的系统。




猜你喜欢

转载自blog.csdn.net/SHIYUN123zw/article/details/79586287
今日推荐