我是靠谱客的博主 酷酷小刺猬,最近开发中收集的这篇文章主要介绍Nginx轻松上手,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Nginx轻松上手

    • 准备环境
    • 部署安装
      • 源码安装
      • yum安装
    • nginx配置文件
    • 简单使用
      • 虚拟主机与域名解析
      • 反向代理
      • 负载均衡
      • 动静分离
      • nginx+keepalived高可用

准备环境

Linux操作系统IP地址功能
Centos7192.168.1.20nginx_server+keepalived
Centos7192.168.1.21nginxbackup+keepalived
Centos7192.168.1.22woker2
Centos7192.168.1.23woker3

部署安装

源码安装

四台机全部安装
1.下载nginx压缩包
	wget -c http://nginx.org/download/nginx-1.16.1.tar.gz

2.解压缩nginx包
	tar -zxvf nginx-1.20.2.tar.gz

3.进入nginx目录
	cd nginx-1.20.2

4.安装依赖关系包
	yum install gcc*

5.测试依赖关系并指定安装目录
	./configure --prefix=/usr/local/nginx

6.编译并安装
	make && make install

7.封装nginx服务
	vi /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-1ookup.target

[Service]
Type=forking
PIDFi1e=/usr/local/nginx/1ogs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

8,自启动nginx
	systemctl start nginx && systemctl enable nginx



/usr/local/nginx/			主要文件目录
	html					web展示页面
	logs					日志
	conf					配置文件

yum安装

1.添加epel源
	yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

2.安装nginx
	yum install nginx -y

3.查看安装目录
	rpm -ql nginx

nginx配置文件

最小配置
worker_processes
worker_processes 1; 默认为1,表示开启一个业务进程

worker_connections
worker_connections 1024; 单个业务进程可接受连接数

include mime.types;
include mime.types; 引入http mime类型

default_type application/octet-stream;
default_type application/octet-stream; 如果mime类型没匹配上,默认使用二进制流的方式传输。

sendfile on;
sendfile on; 使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝。

keepalive timeout;
keepalive timeout	65:保持连接的时间

server
server {};一个server代表一个主机

location
location {};web访问路径

在这里插入图片描述

简单使用

虚拟主机与域名解析

使用机器 192.168.1.20

1.在windows主机中添加hosts解析 C:WindowsSystem32driversetchosts
	192.168.1.20	test.com

2.百度访问test,com

3.创建分站点目录
	cd /
		mkdir www
			cd  www/
				mkdir www
				mkdir vod

4.创建分站点目录文件
	cd /www/www
		vi index.html
			this is web

	cd /www/vod
		vi index.html
			this is vod

5,编辑nginx.conf配置
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /www/www;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server {
        listen       88;
        server_name  localhost;

        location / {
            root   /www/vod;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

6.百度访问
	test.com
	test.com:88	

反向代理

使用机器 192.168.1.20

1.关键字:proxy_pass 
	可将请求转向某个网页或者某个地址,在location标签下使用

请求代理至192.168.1.21
	server {
        listen       80;
        server_name  localhost;

        location / {
        	proxy_pass http://192.168.1.21;
        }
百度访问192.168.1.20查看

2.关键字:upstream
	定义一组服务器地址,在http标签下定义

请求代理至192.168.1.21/22/23
  	upstream httpds{
      server 192.168.1.21:80;
  	  server 192.168.1.22:80;
      server 192.168.1.23:80;
	}
	
     location / {
        proxy_pass http://httpds;
        }

负载均衡

使用机器 192.168.1.20

1.关键字: weight
权重数,谁大谁就优先使用,在upstream下的server参数里使用

	upstream httpds{
   	  server 192.168.1.21:80 weight=8;
  	  server 192.168.1.22:80 weight=5;
  	  server 192.168.1.23:80 weight=2;
  	  }

2.关键字: backup
备用机器,当其他机器全都不能使用才使用此机器

	upstream httpds{
   	  server 192.168.1.21:80 weight=8;
  	  server 192.168.1.22:80 backup;
  	  server 192.168.1.23:80 down;
  	  }

动静分离

关键字:增加 location 标签来访问静态资源

配置反向代理
	location / {
		proxy_pass http://127.0.0.1:8080;
		root html;
		index index.html index.htm;
}

增加每一个location
	location /css {
		root /usr/local/nginx/static;
		index index.html index.htm;
	}
	
	location /images {
		root /usr/local/nginx/static;
		index index.html index.htm;
	}
	
	location /js {
		root /usr/local/nginx/static;
		index index.html index.htm;
	}

将静态资源拉到对应的html目录下
标签可使用正则表达式
	location ~*/(css|img|js) {
		root /usr/local/nginx/static;
		index index.html index.htm;
	}

nginx+keepalived高可用

使用机器 
192.168.1.20 主
192.168.1.21 备

1.主备安装keepalived
	yum install keepalived -y

2.主修改配置文件	
	vi /etc/keepalived/keepalived.conf

	router_id lb20 		 : 标识本节点的字条串,可自定义名称
	vrrp_instance test   : 定义虚拟路由,可自定义名称
	state MASTER         : 主节点为 MASTER, 对应的备份节点为 BACKUP
	interface ens33		 : 虚拟网卡的接口,与本机的一样
	virtual_router_id 51 : 虚拟路由的 ID 号,主备必须一样,代表在一个组
	priority 100		 : 节点优先级, 值范围 0-254, MASTER 要比 BACKUP 高
	advert_int 1		 : 组播信息发送间隔,两个节点设置必须一样, 默认 1s
	authentication		 : 验证信息,可以默认
	virtual_ipaddress	 : 虚拟 IP 池,两个节点必须一样

在这里插入图片描述

3.备修改配置文件
	vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id lb21
}

vrrp_instance test {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

4.主备都开启keepalived
	systemctl start keepalived.service

5.浏览器访问 192.168.1.100 测试

6.down 掉主机器再次访问 192.168.1.100

7.编写脚本检测nginx进程是否运行,如果不运行就down掉本机器的keepalived
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
fi

最后

以上就是酷酷小刺猬为你收集整理的Nginx轻松上手的全部内容,希望文章能够帮你解决Nginx轻松上手所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部