1.nginx安装和基本配置
作者
微信:tangy8080
电子邮箱:914661180@qq.com
更新时间:2019-07-10 20:56:10 星期三
欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程中的编写的文章
如您在阅读过程中发现文章错误,可添加我的微信 tangy8080 进行反馈.感谢您的支持。

文章主题
介绍如何在CentOs7上安装 nginx
在这里,我将nginx安装在k8s-180,k8s-181,k8s-182上.
前置条件
您已经准备好了三台Centos7的主机

正文
安装
安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel wget vim
安装 PCRE
PCRE 作用是让 Nginx 支持 Rewrite 功能。
#下载 PCRE 安装包,下载地址: http://ftp.pcre.org/pub/pcre/pcre-8.35.tar.gz
cd /usr/local/src/
wget http://ftp.pcre.org/pub/pcre/pcre-8.35.tar.gz
#解压并删除压缩包
tar zxvf pcre-8.35.tar.gz
rm pcre-8.35.tar.gz
#进入安装包目录
cd pcre-8.35
#编译安装
./configure
make && make install
#查看pcre版本
pcre-config --version
下载vts虚拟主机流量状态模块[按需]
该模块可以采集到更多的Nginx指标参数,侧重流量采集.如有需要,您可以编译安装
github地址:https://github.com/vozlt/nginx-module-vts#compatibility
cd /usr/local/src
git clone git://github.com/vozlt/nginx-module-vts.git
安装Nginx
#下载 Nginx,下载地址:http://nginx.org/download/nginx-1.14.2.tar.gz
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.14.2.tar.gz
#解开安装包
tar zxvf nginx-1.14.2.tar.gz
rm nginx-1.14.2.tar.gz
#进入安装包目录
cd /usr/local/src/nginx-1.14.2
#编译安装,编译参数视使用场景而定,这里需要使用tcp负载均衡 所以编译了stream模块
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 --with-stream --add-module=/usr/local/src/nginx-module-vts
make
make install
#加入环境变量
vim /etc/profile
##在后面导入nginx的安装路径
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
##刷新配置
source /etc/profile
#查看nginx版本
##查看版本:
nginx -v
##查看详细信息:
nginx -V
- --add-module:添加了vst模块,后期我们会使用该模块提供的数据导出metrics到promethues
- --with-stream:支持TCP代理和负载均衡-stream模块
添加nginx用户组
说明:如不添加在启动时会提示 getpwnam("nginx") failed 检查配置文件也不会通过
这里创建的用户是你安装Nginx时,预编译时指定的Nginx用户(1.3 第四条的编译参数)
useradd nginx -s /sbin/nologin -M
测试配置文件的正确性
nginx -t
返回如下信息,表示配置文件语法正确
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
配置
编辑服务文件
cd /lib/systemd/system/
vim nginx.service
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
常用命令
systemctl start nginx.service 启动nginx服务
systemctl stop nginx.service 停止服务
systemctl restart nginx.service 重新启动服务
systemctl list-units --type=service 查看所有已启动的服务
systemctl status nginx.service 查看服务当前状态
systemctl enable nginx.service 设置开机自启动
systemctl disable nginx.service 停止开机自启动
配置文件路径
/usr/local/nginx/conf/nginx.conf
VTS配置文件样例(为方便编辑,可用xftp下载下来配置好后传上去)
user nginx;
worker_processes 8;
error_log /usr/local/nginx/logs/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /usr/local/nginx/conf/mime.types;
default_type application/octet-stream;
client_header_buffer_size 100k;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
#VTS的配置
vhost_traffic_status_zone;
vhost_traffic_status_filter_by_host on; #开启此功能,会根据不同的server_name进行流量的统计,否则默认会把流量全部计算到第一个上。
#开启header的下划线支持
underscores_in_headers on;
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 /usr/local/nginx/logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#VST server
server {
location /status {
allow 192.168.161.0/24;
allow 10.254.0.0/16;
allow 172.30.0.0/16;
deny all;
vhost_traffic_status off;
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
include /etc/nginx/conf.d/*.conf;
}
- 上述配置描述了基本的VTS配置,如您没有VTS模块.可以删除
- 当您启用VTS server时,如果处于公网环境,请注意安全.应该避免指标参数被公网任意访问
这这里,配置了仅内网,k8s Pod网段,k8s svc网段可访问
测试您的安装
访问:http://192.168.161.180/,您应当看到Nginx欢迎页

访问:http://192.168.161.180/status,您应当看到Nginx Vhost Traffic Status页

访问:http://192.168.161.180//status/format/prometheus,您应当看到很多prothues的metrics指标
其中有些指标,在后期做监控时我们会用的到.比如我们可以统计某个server 在一定时间内是否返回了 5xx的代码.从而触发报警

常见问题
1.1 查看已经安装的模块
nginx -V
1.2 执行 nginx -t 是OK的,然而在执行 nginx -s reload 的时候报错
nginx: [error] invalid PID number "" in "/run/nginx.pid"
解决办法
nginx -c /usr/local/nginx/conf/nginx.conf
nginx -s reload
1.3 重新编译nginx
#重新编译时,需确认原始版本和现在的版本一致
cd /usr/local/src/nginx-1.14.2
#配置新的编译参数
./configure 新的参数
#开始重新编译
make
#覆盖原始文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp -rfp /usr/local/src/nginx-1.14.2/objs/nginx /usr/local/nginx/sbin/nginx
#查看是否是预期的编译参数
nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 --with-stream --add-module=/usr/local/src/nginx-module-vts
引用链接
https://github.com/vozlt/nginx-module-vts
1.nginx安装和基本配置的更多相关文章
- Nginx安装负载均衡配置 fair check扩展
前言 本文主要是针对Nginx安装.负载均衡配置,以及fair智能选举.check后端节点检查扩展功能如何扩展,进行讲解说明. fair模块: upstream-fair,“公平的”Nginx 负载均 ...
- Nginx安装与运行配置总结
Nginx安装与运行配置总结 1. 去官网下载对应的nginx包,推荐使用稳定版本 2. 上传nginx到linux系统 3. 安装依赖环境 (1)安装gcc环境 yun install gcc-c+ ...
- nginx安装升级及配置详解
1.简介 2.安装配置 3.配置文件介绍 4.启动.停止.平滑重启.升级 一.Nginx简介 Nginx(engine x)是俄罗斯人Igor Sysoev编写的一款高性能的http和反向代理服务器. ...
- nginx安装及基础配置(含jdk安装及配置)
0.jdk安装配置 #下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gz tar -xzf jdk-7u25-linux-x64.tar.gz m ...
- linux centos7 nginx 安装部署和配置
1/什么是NginxNginx("enginex")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,在高连接并发的情况下Nginx是Apac ...
- nginx安装与fastdfs配置--阿里云
上一篇文章:fastDFS 一二事 - 简易服务器搭建之--阿里云 做了fastDFS的服务安装和配置,接下来我们来看nginx的安装 第一步:安装nginx需要安装的一些环境: 1.例如: yum ...
- nginx安装&负载均衡配置&nginx反爬虫&nginx命令
Nginx安装 wget https://nginx.org/download/nginx-1.14.0.tar.gz tar -zxvf nginx-1.14.0.tar.gz cd nginx-1 ...
- Nginx安装及核心配置解析
安装 使用yum进行安装 yum install -y nginx 查看nginx的安装位置 whereis nginx 启动测试 nginx 核心配置文件结构 读取Nginx自带的Nginx配置文件 ...
- Nginx安装及基本配置
本文内容: 90%来自以下网址:http://www.nginx.cn/install ,修改了一些版本信息 10%来自以下网址:http://nginx.org/en/docs/beginners_ ...
随机推荐
- thinkpad8平板安装win10系统
ThinkPad8 因为是平板电脑,只有一个micro USB接口,常规安装没法使用鼠标或键盘进行输入,所以难倒很多人. 幸好前段时间买了根otg线和3.0usb hub,安装方法记录如下: 准备:U ...
- Vue使用Ref跨层级获取组件实例
目录 Vue使用Ref跨层级获取组件实例 示例介绍 文档目录结构 安装vue-ref 根组件自定义方法[使用provide和inject] 分别说明各个页面 结果 Vue使用Ref跨层级获取组件实例 ...
- Spider爬虫基础
get获取某个网站的html代码,post访问网站获取网站返回的信息 import urllib.request import urllib.parse #使用get请求 def start1(): ...
- CSS不用背景图片实现优惠券样式反圆角,凹圆角,反向半圆角,并且背景渐变
日常开发过程中,特别是商城相关应用开发过程中,时常会遇到花里胡哨的设计图,比如优惠券样式,上图: 实现思路如下: 1.先写一个外容器,实现背景色渐变: Html: 1 <div clas ...
- FPGA仿真的概念及语法特点
以下是特权同学<FPGA设计+实战演练>书中的描述: 一个正规的设计需要花费在验证上的工作量,往往可能会占到整个开发流程的70%左右.验证通常分为仿真验证和板机验证. ...
- centos下解压rar文件,Linux解压tar.gz和tar.bz2的命令
1.下载:根据主机系统下载合适的版本,当前64为centos系统演示下载: wget http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz 2.解压安 ...
- zabbix指定版本自动化安装脚本shell
安装服务端zabbix 有时候要部署一个zabbix各种配置啊贼烦. #!/bin/sh #sleep 10 zabbix_version=4.2.5 ###这里你自定义版本,我要的是4.2.5 za ...
- 在这个应用中,我使用了 MQ 来处理异步流程、Redis 缓存热点数据、MySQL 持久化数据,还有就是在系统中调用另外一个业务系统的接口,对我的应用来说这些都是属于 RPC 调用,而 MQ、MySQL 持久化的数据也会存在于一个分布式文件系统中,他们之间的调用也是需要用 RPC 来完成数据交互的。
在这个应用中,我使用了 MQ 来处理异步流程.Redis 缓存热点数据.MySQL 持久化数据,还有就是在系统中调用另外一个业务系统的接口,对我的应用来说这些都是属于 RPC 调用,而 MQ.MySQ ...
- threading.RLock()
# Copyright 2001-2017 by Vinay Sajip. All Rights Reserved.## Permission to use, copy, modify, and di ...
- pycharm设置头文件模板(for mac)
我们要达到的效果是每次新建一个.py文件都会有头文件,关于头文件的作用之前已做解释