环境信息

[root@node1 ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core) 

[root@node1 ~]# uname -r
3.10.0-229.el7.x86_64

yum安装nginx

查看是有安装包

[root@node1 ~]#  yum list  | grep nginx

如果没有配置配置epel源

[root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

如果没有wget则安装

[root@node1 ~]# yum -y install wget

安装nginx

[root@node1 ~]# yum -y install nginx

查看版本

[root@node1 ~]# nginx -V
nginx version: nginx/1.10.2

启动 nginx

[root@node1 nginx]# nginx

关闭

[root@node1 nginx]# nginx -s stop

重启

[root@node1 nginx]# nginx -s reload

安装netstat 命令并查看端口

[root@node1 nginx]# yum -y install net-tools
[root@node1 nginx]# netstat -lntup

开机启动

[root@node1 ~]# systemctl enable nginx

编译安装

安装环境

yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

安装启动nginx

下载源码包

[root@localhost opt]# wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

解压源码包

[root@localhost opt]# tar -zxvf nginx-1.12.0.tar.gz

配置,编译安装

[root@localhost nginx-1.12.0]# ./configure --prefix=/opt/nginx1-12/ --with-http_ssl_module --with-http_stub_status_module

[root@localhost nginx-1.12.0]# make && make install

启动nginx

[root@localhost nginx-1.12.0]# cd ../

[root@localhost opt]# cd nginx1-12/sbin

[root@localhost sbin]# ./nginx  #启动

[root@localhost sbin]# ./nginx  -s stop #关闭

[root@localhost sbin]# ./nginx -s reload  #平滑重启

添加环境变量,在 /etc/profile文件中尾部添加

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/nginx1-12/sbin"刷新
[root@localhost ~]# source /etc/profile

安装完成后检测服务

[root@localhost sbin]# curl -I 10.0.0.21
HTTP/1.1 200 OK
Server: nginx/1.12.0
Date: Mon, 11 Mar 2019 05:38:58 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 11 Mar 2019 05:29:12 GMT
Connection: keep-alive
ETag: "5c85f228-264"
Accept-Ranges: bytes

日志文件

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;

配置站点

配置nginx.conf文件

worker_processes  1;
events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  www.demo.com;location / {root   /var/www/demo;index  index.html ;}location /wx{root   /var/www/;index  index.html ;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

创建 /var/www/demo 和 /var/www/wx 目录

[root@node1 ~]# mkdir -p /var/www/demo
[root@node1 ~]# mkdir -p /var/www/wx

将 www 的用户和用户组改为nginx

[root@node1 var ]# chown -R nginx.nginx .

分别在 demo 和 wx 目录下创建index.html文件并写入数据

[root@node1 demo]# echo "demo" >/var/www/demo/index.html
[root@node1 demo]# cd ../wx/
[root@node1 wx]# echo "wx" >/var/www/wx/index.html
[root@node1 www]# cat demo/index.html
demo
[root@node1 www]# cat wx/index.html
wx

通过crul 命令进行测试也可以通过浏览器访问IP或域名+目录进行测试(不要忘了hosts做解析)

[root@node1 www]# curl 10.0.0.22
demo
[root@node1 www]# curl 10.0.0.22/wx/
wx

配置多个虚拟主机

在配置文件中与第一个server平级写入

       #location ~ /\.ht {#    deny  all;#}}server {listen 80;server_name www.wl21.com;location / {root /opt/wl21/;index index.html;}}

负载均衡

环境

主机名 IP 说明
node2 10.0.0.21 负载
node3 10.0.0.22 web01服务器
node4 10.0.0.23 web02服务器

node2配置

[root@node2 nginx]# vim nginx.confworker_processes  1;
events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;upstream www_server_pools  {server 10.0.0.22:80  weight=1;server 10.0.0.23:80  weight=1;}server {listen     80;server_name  www.demo.com;location / {proxy_set_header Host $http_host;proxy_set_header X-Forwarded-For $remote_addr;proxy_pass http://www_server_pools;
       }}
}

node2 的IP和域名需要解析

[root@node2 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain610.0.0.19   www.demo.com

node3 和 node4 配置相同

[root@node3 nginx]# vim nginx.confworker_processes  1;
events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  www.demo.com;location / {root   /var/www/demo;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

创建 /var/www/demo 目录并创建  index.html 文件

10.0.0.22 配置

[root@node3 ~]# mkdir -p /var/www/demo
[root@node3 ~]# echo "demo3" >/var/www/demo/index.html 

10.0.0.23 配置

[root@node4 ~]# mkdir -p /var/www/demo
[root@node4 ~]# echo "demo4" >/var/www/demo/index.html 

域名解析后通过域名进行访问

访问结果

Keepalived 高可用

环境

主机名 IP 说明
node1 10.0.0.20  备负载
node2 10.0.0.21 主负载
node3 10.0.0.22 web01服务器
node4 10.0.0.23 web02服务器

安装 keepalived (10.0.0.20 备负载同样安装)

[root@node2 ~]# yum -y install keepalived
[root@node2 ~]# rpm -qa keepalived

配置keepalived  (主负载配置)

[root@node2 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id node2         #路由器标识,一个局域网内是唯一的
}vrrp_instance VI_1 {       #一个实例state MASTER           #角色 有 Master 和 Backup 两种interface eth0         #通信接口virtual_router_id 51   #虚拟路由标识,在一个配置文件内唯一priority 150           #竞选优先级advert_int 1           #同步通知间隔authentication {       #权限认证auth_type PASSauth_pass 1111}virtual_ipaddress {    #虚拟IP地址 实际中为域名相对应的IP10.0.0.19}
}

配置keepalived  (备负载配置)

[root@node1 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id node1
}vrrp_instance VI_1 {state BACKUP            #角色,有Master和Backup两种interface eth0virtual_router_id 51priority 100            #竞选优先级 数值越大优先级越高advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {      10.0.0.19}
}

配置完成后重启keepalived

[root@node2 ~]# systemctl restart keepalived

[root@node1 ~]# systemctl restart keepalived

查看node2 主负载IP

[root@node2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:1c:0e:18 brd ff:ff:ff:ff:ff:ffinet 10.0.0.21/24 brd 10.0.0.255 scope global eth0valid_lft forever preferred_lft foreverinet 10.0.0.19/32 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe1c:e18/64 scope link valid_lft forever preferred_lft forever

关闭主负载 keepalivied 再次查看主负载IP

[root@node2 ~]# systemctl stop keepalived

[root@node2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:1c:0e:18 brd ff:ff:ff:ff:ff:ffinet 10.0.0.21/24 brd 10.0.0.255 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe1c:e18/64 scope link valid_lft forever preferred_lft forever

此时查看备负载IP

[root@node1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:29:39:b8 brd ff:ff:ff:ff:ff:ffinet 10.0.0.20/24 brd 10.0.0.255 scope global eth0valid_lft forever preferred_lft foreverinet 10.0.0.19/32 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe29:39b8/64 scope link valid_lft forever preferred_lft forever

启动主负载keepalived 并查看IP

root@node2 ~]# systemctl start keepalived
[root@node2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:1c:0e:18 brd ff:ff:ff:ff:ff:ffinet 10.0.0.21/24 brd 10.0.0.255 scope global eth0valid_lft forever preferred_lft foreverinet 10.0.0.19/32 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe1c:e18/64 scope link valid_lft forever preferred_lft forever

域名IP回到了主负载上面,此时备负载不在有域名IP

[root@node1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:29:39:b8 brd ff:ff:ff:ff:ff:ffinet 10.0.0.20/24 brd 10.0.0.255 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe29:39b8/64 scope link valid_lft forever preferred_lft forever

最后要将keepalives 加入开机启动

[root@node1 ~]# systemctl enable keepalived
[root@node2 ~]# systemctl enable keepalived

转载于:https://www.cnblogs.com/wanglan/p/7399861.html

centos 7 之nginx相关推荐

  1. 如何在Ubuntu和CentOS上启用Nginx的HTTP/2 协议支持

    HTTP/2 是 HTTP 网络协议的主要修订版本,其专注于 HTTP 协议的性能改进.HTTP/2 协议的目标是减少延迟,并且允许在 Web 浏览器和服务器之间的一个连接上并行发起多个请求,因此 W ...

  2. linux下使用nginx搭建集群,CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群第一步)

    CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群) CentOS 7.4(腾讯云) pcre库 zlib库 openssl Nginx服务器 安装gcc g++开发类库 y ...

  3. 如何在 Ubuntu 和 CentOS 上启用 Nginx 的 HTTP/2 协议支持

    HTTP/2 是 HTTP 网络协议的主要修订版本,其专注于 HTTP 协议的性能改进.HTTP/2 协议的目标是减少延迟,并且允许在 Web 浏览器和服务器之间的一个连接上并行发起多个请求,因此 W ...

  4. linux slf4j.rpm,Centos下安装nginx rpm包

    1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...

  5. CentOS服务器下nginx防盗链介绍与配置

    转载来源 : CentOS服务器下nginx防盗链介绍与配置 : safebase.cn/article-256622-1.html 一.防盗链介绍 1.什么是防盗链 简单的说,就是某些不法的网站,通 ...

  6. centos 7.6 —— Nginx 配置网页防盗链FPM参数优化

    centos 7.6 -- Nginx 配置网页防盗链&&FPM参数优化 一.网页防盗链 (1)防盗链端--服务端配置(192.168.75.134) 1.1 服务端配置DNS服务,域 ...

  7. linux nginx rpm 安装配置,Centos下安装nginx rpm包

    1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...

  8. 基于CentOS 7配置Nginx反向代理

    Nginx作为反向代理服务器被广泛使用在各大互联网企业.它简单易用,可以根据业务的需求将其不同的业务类型代理至不同的服务器,将整个站点请求压力按类型分摊到不同的服务器.该方式使的整个站点请求性能得以极 ...

  9. centos 7.6——Nginx中rewrite模块应用(location)——基于域名的跳转等

    centos 7.6--Nginx中rewrite模块应用(location)--基于域名的跳转等 文章目录 centos 7.6--Nginx中rewrite模块应用(location)--基于域名 ...

  10. centos下安装nginx流程

    centos下安装nginx流程 1.安装工具库: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel ...

最新文章

  1. python * 与 ** 分别代表元组和字典
  2. iOS 11开发教程(十八)iOS11应用视图之使用代码添加按钮
  3. minEnclosingCircle函数
  4. linux系统查看性能,linux查看操作系统(linux查看性能)
  5. 一个关于微服务架构和monolithic架构的讨论
  6. [文摘20090203]手机基本知识
  7. html的table效果,html的table用法(让网页的视觉效果显示出来)
  8. python实现bm3d图像去噪
  9. python模拟登录百度贴吧_Python百度贴吧多线程自动登录签到/自动打码
  10. 如何删除github上的文件夹(抖机灵方法)
  11. 获取文件夹下的文件,包含子文件夹并复制文件
  12. 2022北林计科学生保研历程
  13. POSTGRESQL 用户怎么乱糟糟,出自其他DB的评论, 与SCHEMA 移魂大法
  14. 7. 丈母娘嫌我不懂K8s的Service概念,让我去面壁
  15. js字段名下划线命名转驼峰,驼峰转下划线
  16. 中药治疗糖尿病十六则常用方-中药治疗糖尿病
  17. HBase --------- 深入了解HBase架构(架构组建及HBase工作原理)
  18. Opengl入门基础-shader着色器画方形并且填颜色
  19. Pytorch提取预训练模型特定中间层的输出
  20. Mountain Duck for Mac(云存储空间管理软件) v2.6.7永久破解版

热门文章

  1. Redis配置文件redis.conf参数详解
  2. django/python日志logging 的配置以及处理
  3. 打开Visual Studio 2010,左下角显示加载工具箱内容
  4. 菜鸟赛季之------第221天...
  5. 如何让你的硬盘更快,系统更稳定!
  6. 搭建自己的博客(二十):优化博客评论功能
  7. 一张表搞懂各种 Docker 监控方案 - 每天5分钟玩转 Docker 容器技术(86)
  8. [Sciter] 资源引用
  9. Atitit.单向sso  单点登录的设计与实现
  10. Android中文URL乱码问题 解决