3 Nginx 基础配置 反向代理 负载均衡

本文档详细介绍了Nginx的安装步骤,包括依赖库的配置与编译安装过程。此外,还提供了Nginx的基本配置示例,涵盖了如何通过域名解析、虚拟主机设置以及反向代理和负载均衡配置来管理多个网站。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)Nginx的安装

相关文档:Nginx维护包的官方网站:http://nginx.org
Nginx官方文档:http://nginx.org/en/docs/
淘宝团队翻译文档:http://tengine.taobao.org/documentation_cn.html
Nginx开发从入门到精通: http://tengine.taobao.org/book/index.html

1、nginx 源码下载:http://nginx.org/en/download.html
2、依赖
    PCRE库(是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写)
    zlib库(是提供数据压缩用的函数库,zlib能使用一个gzip数据头,zlib数据头或者不使用数据头压缩数据。)
    OpenSSL开发库(是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。)

a.tar -zxvf nginx-1.10.1.tar.gz

b.cd nginx-1.10.1/

c../configure –with-pcre=pcre的源码目录 –with-zlib=zlib的源码目录 –with-openssl的源码目录
./configure –help(查看帮助)
–with-pcre=pcre的源码目录
–with-zlib=zlib的源码目录
–with-openssl的源码目录

d.make

e.sudo make install

默认nginx放置在/usr/local/nginx
添加软连接到/usr/local/bin
sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
启动nginx
sudo nginx

(2)Nginx的配置 (sudo nginx -t 可以查看配置路径)

user nobody; 指用哪个用户启动worker进程
worker_processes 1; worker进程数量,跟CPU核心数相等
error_log logs/error.log;

http 
        include mime.types;  将某个文件在这里展开
        default_type application/octet-stream;

        access_log 地址;

server 模块
listen 80;监听80端口 用于http,https使用443
listen ip:port; 不填ip,默认0.0.0.0
server_name 域名; 只能填域名
charset koi8-r;
默认字符集 ,俄罗斯文
修改为utf-8
location 模块
配置资源定位

        location / {  http://ip:port/
            root html;
                指定资源从哪个目录搜索,可以是绝对路径也可以是相对于prefix
                的路径
            index index.html index.htm ...;
                如果请求资源定位是一个目录,那么默认返回哪个文件,用来定义主页
                首先搜索index.html ,搜索不到再搜索index.htm
        }

域名和ip

域名 www.baidu.com
一个域名 : 同一个地方同一个时刻,只能对应一个IP
一个IP 可以绑定多个域名

如何通过域名来解析出IP?
1 自行解析 通过hosts
linux/unix/mac /etc/hosts
windows : C:/windows/system32/driver/etc/hosts

2 DNS (Domain Name System) 前提:要配置DNS
当前主机会发送一个UDP报文到DNS服务器
服务器回一个报文告诉IP地址

虚拟主机
同一个端口80部署不同的站点
网络层/控制层 IP/TCP 不能做区分
应用层 http 做区分

            在http请求头的
                Host字段 : www.baidu.com  作区分

需求:
www.A.cn
www.B.cn

    使用以上两个域名来访问nginx服务器,里应该看到两个不同的页面

    使用多个server模块来配置nginx



    <h1>welcome to A</h1> 

    server {                                                                                                                                                                      
        listen       80;                                                                                                                                                          
        server_name  www.A.cn;                                                                                                                                              
        charset utf-8;                                                                                                                                                            
        location / {                                                                                                                                                              
            root   /home/A/www/A/;                                                                                                                                     
            index  index.html index.htm;                                                                                                                                          
        }                                                                                                                                                                         
    }   


    server {                                                                                                                                                                      
        listen       80;                                                                                                                                                          
        server_name  www.B.cn;                                                                                                                                              
        charset utf-8;                                                                                                                                                            
        location / {                                                                                                                                                              
            root   /home/B/www/B/;                                                                                                                                     
            index  index.html index.htm;                                                                                                                                          
        }                                                                                                                                                                         
    } 

反向代理配置

反向代理配置
    使用proxy_pass

    location / {
        proxy_pass http://ip:port;

    }

    location / {
        proxy_pass http://192.168.111.111:10080;
        #proxy_set_header Host www.A.cn;
        //端口一致,反向代理通过set_header 来区分访问那个服务器 
    }

负载均衡
实现负载均衡的前提是实现反向代理
只有实现反向代理才有权限做决策

要在http模块下(不是server模块)
添加服务器群组 ,给其他代理做引用
upstream 群组名字 {
server ip1:port1;
server ip2:port2;
server unix:/tmp/aaa.sock;
}

server模块下
location / {
proxy_pass http://群组名字;
}
默认是轮询策略

权重与备用

    多台服务器,配置不一,性能好的服务器想多分摊一点请求,设置权重

    upstream test.cn {                                                                                                                                                            
        server 192.168.177.163:10080 weight=90;                                                                                                                                             
        server 192.168.177.163:10081 weight=10;                                                                                                                                             
    } 

    请求分配计算,将所有权重相加,求百分比


    备用
        有一些服务器只做备用,当其他服务器挂了,就启用

    upstream test.cn {                                                                                                                                                            
        server 192.168.177.163:10080;                                                                                                                                             
        server 192.168.177.163:10081 backup;                                                                                                                                             
    } 

好乱 。。。 赶时间。。。

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值