Nginx学习之--配置文件

一、配置文件理解 

# 编辑配置文件
vi /usr/local/nginx/conf/nginx.conf
# 只看未注释的
# 代表并发处理的数量,值越大并发越大,只要设备支持
worker_processes  1;

# nginx服务器和用户网络连接
events {
    # 代表 worker_processes 最大连接数
    worker_connections  1024;
}

# 大部分修改都在这里,代理、缓存、日志等等(注释掉的我这里删除了)
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        # nginx监听端口号
        listen       80;
        # 主机名称
        server_name  localhost;
        # 当路径包含某个值时进行的操作    
        location / {
            root   html;
            index  index.html index.htm;
        }
        # 错误页面
        error_page   500 502 503 504  /50x.html;
        # 当路径包含某个值时进行的操作
        location = /50x.html {
            root   html;
        }
    }
}

二、反向代理

# 1、安装tomcat和jdk并配置
# 2、把8080端口加入防火墙,或者关闭防火墙
# 3、修改nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
server {
        listen       80;
        # 这个是把原先的local改成IP地址了
        server_name  192.168.74.132;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            # 这个是新增
            proxy_pass http://127.0.0.1:8080;
            index  index.html index.htm;
        }
...
# 保存
# 热部署刷新一下
./nginx -s reload
# 访问
http://192.168.74.132/



# 监听端口,根据路径访问不同的地址
# 编辑配置文件,新增一个server
server {
        # 监听9001端口
        listen  9001;
        server_name 192.168.74.132;
        # ~ 代表正则,路径中包含one则跳转
        location ~ /one/ {
            proxy_pass http://127.0.0.1:8001;
        }
        location ~ /two/ {
            proxy_pass http://127.0.0.1:8002;
        }
    }

    server {
...


#################### 扩展 ######################
# location说明
# 语法:
location [= | ~ | ~* | ^~] URI {
}
# 解释
# =:用于不含正则表达式的URI前,要求请求字符串与URI严格匹配,如果匹配成功,就停止向下搜索立即处理
# ~:用于表示URI包含正则表达式,并且区分大小写
# ~*:用于表示URI包含正则表达式,并且不区分大小写
# ^~:用于不含正则表达式的 URI前,要求Nginx服务器找到标识URI和请求字符串匹配度最高的location
# ~^:表示匹配以什么规则开头,location ~ ^/v1/.*/xxx.* {...}代表匹配以v1开始,且跳过任意字符串,且后面包含xxx的url路径
# 立即使用此location处理请求,而不再使用location块中的正则URI和请求字符串做匹配。
# PS:如果URI包含正则表达式,则必须要有~ 或者 ~* 标识

三、负载均衡

# 编辑配置文件
vi /usr/local/nginx/conf/nginx.conf
# http 中新增
http{
...
    #gzip  on;
    # 新增 upstream 
    # myserver 是自定义的名字
    upstream myserver{
        server 115.28.52.63:8001 weight=1;
        server 115.28.52.63:8002 weight=1;
    }
    # 修改server
    server {
        listen       80;
        server_name  192.168.74.132;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            proxy_pass http://myserver;
            index  index.html index.htm;
        }
...

#################### 扩展 ###################
1、轮询
每个请求按实际顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自带剔除
2、weight
weight 代表权重,默认为1,权重越高被分配的客户端越高
指定轮询几率,wight和访问比率成正比,用于后端服务器性能不均的情况,例如:
upstream server_pool{
    server 192.168.1.1 weight=10;
    server 192.168.1.2 weight=9;
}
3、ip_hash
每个请求按访问IP的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session问题。例如
upstream server_pool{
    ip_hash;
    server 192.168.1.1:80;
    server 192.168.1.2:81;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream server_pool{
    server 192.168.1.1:80;
    server 192.168.1.2:80;
    fair;
}
###############################################

四、动静分离

# 1、动静分离,把动态请求和静态请求通过nginx分开
# 把静态文件单独放在一个服务器上,另一种是动态静态文件混合放在一起,通过nginx来区分
# 在根目录下创建两个文件夹,www和image 一个放html文件一个放图片文件,自己创建的文件夹
# 修改配置文件
...
    #gzip  on;

    server {
        listen       80;
        server_name  192.168.74.132;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        # 路径包含www时
        location /www/ {
            root   /data/;
            index  index.html index.htm;
        }
        # 路径包含image时
        location /image/ {
            root  /data/;
            # 列出当前文件夹中的内容
            autoindex  on;
        }
...
# 重新部署
./nginx -s reload

# 测试
http://192.168.74.132/image/1.png
# 会把当前文件夹中的文件列出来(autoindex 参数的作用)
http://192.168.74.132/image/
# 访问页面
http://192.168.74.132/www/a.html

五、高可用的集群

# 当前nginx宕机时,也可用正常访问服务器,就是所谓的高可用
# 通过keepalived 来实现nginx的主备机制,当一台宕掉,另一台就接手
# 两台机器都按照nginx、keepalived 一台当作主、一台当作备
# 安装keepalived 
yum install -y keepalived
# 验证
rpm -q -a keepalived
# 编辑keepalived 配置文件
vi /etc/keepalived/keepalived.conf
# 配置文件内容
# 改天单独学一下keepalived
# 原理就是 两台机器都按照keepalived 和 nginx,启动nginx 和 keepalived。
# 编写一个测试脚本,来检测nginx 有没有挂,通过keepalived 调用这个脚本
# 当一台的nginx挂掉就用另一台。(keepalived 对外提供一个浮动IP,通过这个做到无感切换)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值