centos 7 之nginx
环境信息
[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相关推荐
- 如何在Ubuntu和CentOS上启用Nginx的HTTP/2 协议支持
HTTP/2 是 HTTP 网络协议的主要修订版本,其专注于 HTTP 协议的性能改进.HTTP/2 协议的目标是减少延迟,并且允许在 Web 浏览器和服务器之间的一个连接上并行发起多个请求,因此 W ...
- linux下使用nginx搭建集群,CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群第一步)
CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群) CentOS 7.4(腾讯云) pcre库 zlib库 openssl Nginx服务器 安装gcc g++开发类库 y ...
- 如何在 Ubuntu 和 CentOS 上启用 Nginx 的 HTTP/2 协议支持
HTTP/2 是 HTTP 网络协议的主要修订版本,其专注于 HTTP 协议的性能改进.HTTP/2 协议的目标是减少延迟,并且允许在 Web 浏览器和服务器之间的一个连接上并行发起多个请求,因此 W ...
- linux slf4j.rpm,Centos下安装nginx rpm包
1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...
- CentOS服务器下nginx防盗链介绍与配置
转载来源 : CentOS服务器下nginx防盗链介绍与配置 : safebase.cn/article-256622-1.html 一.防盗链介绍 1.什么是防盗链 简单的说,就是某些不法的网站,通 ...
- centos 7.6 —— Nginx 配置网页防盗链FPM参数优化
centos 7.6 -- Nginx 配置网页防盗链&&FPM参数优化 一.网页防盗链 (1)防盗链端--服务端配置(192.168.75.134) 1.1 服务端配置DNS服务,域 ...
- linux nginx rpm 安装配置,Centos下安装nginx rpm包
1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...
- 基于CentOS 7配置Nginx反向代理
Nginx作为反向代理服务器被广泛使用在各大互联网企业.它简单易用,可以根据业务的需求将其不同的业务类型代理至不同的服务器,将整个站点请求压力按类型分摊到不同的服务器.该方式使的整个站点请求性能得以极 ...
- centos 7.6——Nginx中rewrite模块应用(location)——基于域名的跳转等
centos 7.6--Nginx中rewrite模块应用(location)--基于域名的跳转等 文章目录 centos 7.6--Nginx中rewrite模块应用(location)--基于域名 ...
- centos下安装nginx流程
centos下安装nginx流程 1.安装工具库: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel ...
最新文章
- python * 与 ** 分别代表元组和字典
- iOS 11开发教程(十八)iOS11应用视图之使用代码添加按钮
- minEnclosingCircle函数
- linux系统查看性能,linux查看操作系统(linux查看性能)
- 一个关于微服务架构和monolithic架构的讨论
- [文摘20090203]手机基本知识
- html的table效果,html的table用法(让网页的视觉效果显示出来)
- python实现bm3d图像去噪
- python模拟登录百度贴吧_Python百度贴吧多线程自动登录签到/自动打码
- 如何删除github上的文件夹(抖机灵方法)
- 获取文件夹下的文件,包含子文件夹并复制文件
- 2022北林计科学生保研历程
- POSTGRESQL 用户怎么乱糟糟,出自其他DB的评论, 与SCHEMA 移魂大法
- 7. 丈母娘嫌我不懂K8s的Service概念,让我去面壁
- js字段名下划线命名转驼峰,驼峰转下划线
- 中药治疗糖尿病十六则常用方-中药治疗糖尿病
- HBase --------- 深入了解HBase架构(架构组建及HBase工作原理)
- Opengl入门基础-shader着色器画方形并且填颜色
- Pytorch提取预训练模型特定中间层的输出
- Mountain Duck for Mac(云存储空间管理软件) v2.6.7永久破解版
热门文章
- Redis配置文件redis.conf参数详解
- django/python日志logging 的配置以及处理
- 打开Visual Studio 2010,左下角显示加载工具箱内容
- 菜鸟赛季之------第221天...
- 如何让你的硬盘更快,系统更稳定!
- 搭建自己的博客(二十):优化博客评论功能
- 一张表搞懂各种 Docker 监控方案 - 每天5分钟玩转 Docker 容器技术(86)
- [Sciter] 资源引用
- Atitit.单向sso 单点登录的设计与实现
- Android中文URL乱码问题 解决