Ubuntu nginx安装和简单使用

nginx安装和简单使用

Ubuntu安装nginx

  • 安装nginx
su root        #切换成root用户
apt install nginx
  • 检查是否安装完成
nginx -v

出现如下信息,说明安装成功
在这里插入图片描述

  • 启动nginx
service nginx start

如是启动报错,查看默认端口80是否被占用

netstat -ntlp

如是出现下图信息,说明端口被占用,解决方案:1,杀死占用端口的进程;2,修改nginx端口
在这里插入图片描述

  • 杀死占用端口进程:
    1、 查看被占用端口的PID:
    lsof -i tcp:80
    

在这里插入图片描述
2、kill掉该进程
kill -9 PID #这里的pid是32284

  • 修改端口
cd /etc/nginx			#切换到根目录
vi nginx.conf			#打开配置文件

发现配置文件中没有端口配置,而是进入了两个配置文件夹conf.d和/sites-enabled/,打开文件夹conf.d发现是空文件夹,打开/sites-enabled文件夹发现只有一个文件default,打开文件

vi default

在这里插入图片描述
将这里的80修改为你想要的端口

  • 启动nginx
    访问主机ip:端口号出现如下界面说明安装成功
    在这里插入图片描述

简单使用

  • 路由配置访问静态资源
    进入conf.d文件夹创建文件static.conf (必须以.conf结尾,因为nginx会把conf.d文件夹下的以.conf结尾的文件当作配置文件,这是因为在nginx.conf文件中配置的),输入以下内容保存
    server {
            listen 8082 default_server;
            listen [::]:8082 default_server;
            
            include snippets/snakeoil.conf;
    
            server_name _;
    
            location / {
                    root /usr/share/nginx/html;
                    try_files $uri $uri/ =404;
            }
            location /html {
                    root /var/www/;   #此处指向apache默认初始页面
                    try_files $uri $uri/ =404;
            }
    }
    

刷新nginx的配置信息

nginx -s reload

浏览器访问ip:port 出现如下界面
在这里插入图片描述
浏览器访问ip:port/html 出现如下界面
在这里插入图片描述

  • nginx中location对url匹配:

    语法:location [=||*|^~] /uri/ { … }

    当匹配中符合条件的location,则执行内部指令;如果使用正则表达式,必须使用*表明不区分大小写或者区分大小写匹配;

    如果不是用正则表达式;可使用=严格匹配;

      指令按下列顺序被接受:
    

    1、 =前缀的指令严格匹配这个查询;如果找到停止往下匹配
    2、挣下的常规字符串,长的在前,如果这个匹配使用^~前缀,匹配停止;
    3、 正则表达式,按配置文件的顺序;
    4、 如果第三步产生匹配。则使用这个结果;停止匹配;否则使用第二部的匹配结果;

      四个案例:
    

    location = / {
        #只匹配/查询
      }
      location / {
        #匹配任何查询,所有请求都是以/开头。但是正则表达式规则和长的块规则将被优先匹配和查询;
      }
      location ^~ /images/ {
    # 匹配任何以 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
        }
      location ~* .(gif|jpg|png)${
        #匹配任何以gif、jpg、png结尾的请求。然后所有/images/目录的请求将使用第三个
      }

  • 反向代理
    在conf.d文件夹创建文件forwardagent.conf,输入以下内容保存

    server{
        listen 81;
        server_name _;
        proxy_buffering on;  #开启代理
        #指定来自客户端请求头的hearerbuffer大小
        client_header_buffer_size 32k;
        #指定客户端请求中较大的消息头的缓存最大数量和大小。
        large_client_header_buffers 4 6k;
        #客户端连接超时时间,单位是秒
        keepalive_timeout 60;
        #客户端请求头读取超时时间
        client_header_timeout 10;
        #设置客户端请求主体读取超时时间
        client_body_timeout 10;
        #响应客户端超时时间
        send_timeout 10;
        location / {
                proxy_pass http://10.42.1.22:8082/;   #被代理服务器的协议和地址。
        }
    

}
```
刷新nginx的配置信息, 浏览器访问 主机ip:port出现被代理的网站首页界面

  • 负载均衡
    在conf.d文件夹下创建loadbalancing.conf配置文件,内容如下
    upstream name {
        server 10.42.1.22:8082;
        server 127.0.0.1:80;
    }
    server {
        listen 8081;
        server_name _;
        location / {
        proxy_pass http://name;
        }
    }
    

刷新nginx的配置信息, , 浏览器访问 主机ip:port, 这里使用两个不同的网站被代理,因此多次刷新会循环代理到两个不同的网站(默认使用RR即轮询法)

  • 源地址哈希法:根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

配置:

upstream name {
		ip_hash; 
	    server 10.42.1.22:8082;
	    server 127.0.0.1:80;
	}
  • 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。(默认)

  • 加权轮询法:不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。
    配置:

upstream name {
    server 10.42.1.22:8082 weight=1;
    server 127.0.0.1:80 weight=2;
}
  • 最少连接数: 请求将转发到连接数较少的服务器上
upstream  name {
       least_conn;
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值