一 nginx编译安装
1.1官网下载安装包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
1.2 下载依赖安装包
yum -y install gcc gcc-c++ make pcre-devel zlib-devel
1.3 解压安装包到指定目录
tar -xf nginx-1.18.0.tar.gz -C 指定目录
1.4 切换到nginx1.18目录编译安装
cd nginx-1.18.0
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make && make install
1.5 将nginx添加为系统服务
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile =/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -S HUP $MAINPID
ExecStop=/usr/bin/kill -S QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
1.6 给nginx系统文件加上权限
chmod 754 /lib/systemd/system/nginx.service
1.7 关闭防火墙重启服务
systemctl stop firewalll
setenforce 0
systemctl restart nginx
systemctl status nginx
二 yum安装nginx
2.1 centos7 需要安装epel源
yum install -y epel-release
2.2 yum安装nginx包
yum install nginx -y
2.3 关闭防火墙启动nginx
systemctl stop firewalll
setenforce 0
systemctl start nginx
systemctl status nginx
三 nginx常用命令
nginx -v 查看版本
nginx -V 查看编译信息
nginx -s stop 强制停止
nginx -s quit 优雅的停止
nginx -s reload 重新加载配置文件
nginx -s reopen 分割日志
四 nginx的配置文件
4.1 全局配置
全局块 :配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
4.2 events块
events块: 配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
4.3 https块
http块: 可以嵌套多个server,配置代理,级存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
4.4 server块
server块: 配置虚拟主机的相关参数,一个http中可以有多个server。
4.5 location块
location块: 配置请求的路由,以及各种页面的处理情况。
五 修改配置文件
5.1 隐藏版本号
vim /usr/local/nginx/conf/nginx.conf
在http模块里面加入 server_tokens off ;
然后重启nginx服务 查看
5.2 修改版本名
到安装包的http目录里面编辑这个文件
vim /opt/nginx-1.18.0/src/http/ngx_http_header_filter_module.c
找到49行 在server后面修改名字
重新编译安装
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make && make install
关闭防火墙启动nginx
5.3 修改启动进程数
worker_processes 1;
当进程为1时 查看nginx工作进程
worker_processes auto;
如果设置为auto 就是你真实的cpu数量
六 http模块的设置
6.1 构建虚拟主机
1 修改配置文件 要放在 http 模块里
2 创建子配置文件的文件,root指定网页文件位置
mkdir -p /apps/nginx/conf.d
cd /apps/nginx/conf.d
vim ck.conf
vim boa.conf
3 创建网页目录,编辑网页index.html
mkdir -p /data/nginx/html/{ck,boa}
cd /data/nginx/html/ck
echo ck > /data/nginx/html/ck/index.html
cd /data/nginx/html/boa
echo boa > /data/nginx/html/boa/index.html
4 关闭防火墙,重启nginx服务,在另外一台机子上hosts文件添加域名与ip 访问本机主页
6.2 基于访问状态统计
1 修改nginx访问状态统计
vim /apps/nginx/conf/nginx.conf
2 在 server块里面 加入
location ~/status {
stub_status on;
access_log off;
}
3 网页搜索
ip地址加上status
6.3 访问控制 设置用户密码
1 先安装 httpd-tools
yum install -y httpd-tools
2 创建一个登录用户
htpasswd -c /usr/local/nginx/passwd.db ck
3 给这文件修改权限和属主
chmod 400 /usr/local/nginx/passwd.db
chown nginx /usr/local/nginx/passwd.db
4 在location 里面加
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;
6.4 基于ip地址访问
vim /usr/local/nginx/conf/nginx.conf
添加一块虚拟网卡
ifconfig ens33:0 192.168.163.131/24
重新启动nginx服务,关闭防火墙,打开网页输入ip地址验证
6.5 基于端口访问
将配置文件中的 ip端口修改