Nginx的三种应用场景介绍

  1. 配置虚拟主机

就是在一台服务器启动多个网站。

如何区分不同的网站:

1、域名不同

2、端口不同

1.1. 通过端口区分不同虚拟机

Nginx的配置文件:

/usr/local/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  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       80;

    server_name  localhost;



    #charset koi8-r;



    #access_log  logs/host.access.log  main;

location / {

        root   html;

        index  index.html index.htm;

    }

}

}

可以配置多个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       80;
    server_name  localhost;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location / {
        root   html;
        index  index.html index.htm;
    }
}

server {
    listen       81;
    server_name  localhost;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location / {
        root   html-81;
        index  index.html index.htm;
    }
}

重新加载配置文件

[root@localhost nginx]# sbin/nginx -s reload

1.2. 通过域名区分虚拟主机

1.2.1. 什么是域名

域名就是网站。

www.baidu.com

www.taobao.com

www.jd.com

Tcp/ip

Dns服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系。

一级域名:

Baidu.com

Taobao.com

Jd.com

二级域名:

www.baidu.com

Image.baidu.com

Item.baidu.com

三级域名:

1.Image.baidu.com

Aaa.image.baidu.com

一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。

本地测试可以修改hosts文件。

修改window的hosts文件:(C:\Windows\System32\drivers\etc)

可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走dns服务器。

1.2.2. Nginx的配置

#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       80;
    server_name  localhost;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location / {
        root   html;
        index  index.html index.htm;
    }
}
server {
    listen       81;
    server_name  localhost;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location / {
        root   html-81;
        index  index.html index.htm;
    }
}
server {
    listen       80;
    server_name  www.taobao.com;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location / {
        root   html-taobao;
        index  index.html index.htm;
    }
}
server {
    listen       80;
    server_name  www.baidu.com;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location / {
        root   html-baidu;
        index  index.html index.htm;
    }
}

域名的配置:

192.168.25.148 www.taobao.com

192.168.25.148 www.baidu.com

  1. 反向代理

反向代理服务器决定哪台服务器提供服务。

返回代理服务器不提供服务器。也是请求的转发。

2.2. Nginx实现反向代理

两个域名指向同一台nginx服务器,用户访问不同的域名显示不同的网页内容。

两个域名是www.sian.com.cn和www.sohu.com

nginx服务器使用虚拟机192.168.101.3

第一步:安装两个tomcat,分别运行在8080和8081端口。

第二步:启动两个tomcat。

第三步:反向代理服务器的配置

upstream tomcat1 {

server 192.168.25.148:8080;

}

server {

    listen       80;

    server_name  www.sina.com.cn;



    #charset koi8-r;



    #access_log  logs/host.access.log  main;



    location / {

        proxy_pass   http://tomcat1;

        index  index.html index.htm;

    }

}

upstream tomcat2 {

server 192.168.25.148:8081;

}

server {

    listen       80;

    server_name  www.sohu.com;



    #charset koi8-r;



    #access_log  logs/host.access.log  main;



    location / {

        proxy_pass   http://tomcat2;

        index  index.html index.htm;

    }

}

第四步:nginx重新加载配置文件

第五步:配置域名

在hosts文件中添加域名和ip的映射关系

192.168.25.148 www.sina.com.cn

192.168.25.148 www.sohu.com

查看tomcat日期: tail -f tomcat/logs/catalina.out

  1. 负载均衡

如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。

upstream tomcat2 {

server 192.168.25.148:8081;

server 192.168.25.148:8082;

}

可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1

upstream tomcat2 {

server 192.168.25.148:8081;

server 192.168.25.148:8082 weight=2;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值