• 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:WindowsSystem32driversetc)

    可以配置域名和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;
    }

          </div>
    

    原文地址:https://blog.csdn.net/weixin_43087634/article/details/84800148

  • 相关阅读:
    Vue 全局过滤器和局部过滤器使用方式
    Vue 标签显示/隐藏的方式对比demo
    OpenSSL SSL_read: Connection was reset, errno 10054
    Vue 自定义全局指令和局部指令demo
    Vue 列表渲染demo
    Vue Class样式和style样式编写
    vue中的函数(methods),计算属性(computed),监听器(watch)的区别demo
    Vue 常用指令
    针对 WebSocket 协议的 Locust 压测脚本实现(基于 Locust 1.0 以上版本)
    Locust 脚本开发入门(4)
  • 原文地址:https://www.cnblogs.com/jpfss/p/10984847.html
Copyright © 2020-2023  润新知