Nginx安装搭建与核心配置教程

AI 概述
安装 Nginx1.编译安装2.yum 安装Nginx 的信号使用Nginx 的核心配置指令1.访问状态统计配置2.基于授权的访问控制3.基于客户端访问控制4.基于域名的 nginx 虚拟主机5.基于 IP 的 nginx 虚拟主机6.基于端口的 nginx 虚拟主机 Nginx 大家并不陌生,它是一个高性能的反向代理和 Web 服务器软件。它以其出色...
目录
文章目录隐藏
  1. 安装 Nginx
  2. Nginx 的信号使用
  3. Nginx 的核心配置指令

Nginx 安装搭建与核心配置教程

Nginx 大家并不陌生,它是一个高性能的反向代理和 Web 服务器软件。它以其出色的性能和可靠性而闻名,并且被广泛用于构建高流量的网站和应用程序。本文主要讲解了 Nginx 的搭建与核心配置的步骤教程,需要的小伙伴可以参考下。

安装 Nginx

1.编译安装

关闭防火墙,将安装 nginx 所需软件包传到/opt 目录下

nginx 安装官网:点击这里

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
# 将压缩包传入到/opt 目录下
cd /opt
wget http://nginx.org/download/nginx-1.18.0.tar.gz

安装 Nginx

安装依赖包:

nginx 的配置及运行需要 pcre、zlib 等软件包的支持,因此需要安装这些安装的开发包,以便提供相应的库和头文件。

yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel

安装依赖包

创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)。

useradd -M -s /sbin/nologin nginx

创建运行用户

编译安装 nginx:

tar xf nginx-1.18.0.tar.gz 
cd nginx-1.18.0/
mkdir /apps/nginx -p
./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
make -j2 && make install
chown -R nginx.nginx /apps/nginx

编译安装 nginx

编译安装 nginx

创建软连接后直接 nginx 启动:

ln -s /apps/nginx/sbin/nginx /usr/sbin/

创建软连接后直接 nginx 启动

创建 Nginx 自启动文件:

vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target

创建 Nginx 自启动文件

重新加载配置、设置开机自启并开启服务:

systemctl daemon-reload          #重新加载配置
systemctl enable --now nginx     #开机自启并立即启动
systemctl status nginx.service   #查看服务状态(验证

重新加载配置

2.yum 安装

Centos7 需要安装 epel 源
cd /etc/yum.repos.d
vim epel.repo
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
gpgcheck=0
yum install -y epel-release
yum install nginx -y

Nginx 的信号使用

nginx 命令支持向其发送信号,实现不同功能:

nginx -h      
#查询 nginx 信号使用规则

Nginx 的信号使用

常用信号:

信号 解释
nginx -v 显示版本
nginx -V 显示编译详细情况、模块等信息
nginx -t 检查语法格式
nginx -T 打印当前配置
nginx -s 发送信号
nginx -s stop 立即关闭
nginx -s quit 优雅退出,不影响业务的状态下退出
nginx -s reload 重新加载配置文件
nginx -s USR1 分割日志
nginx -s USR2 优雅升级
nginx -g ‘user zhangsan;’ 以张三身份运行,默认是以 nginx 身份
nginx -g ‘daemon off;’ 前台运行命令

Nginx 的核心配置指令

1.访问状态统计配置

第一步:查看已安装的 Nginx 是否包含 http_stub_status 模块。

cd /usr/local/nginx/sbin
#根据安装路径自由修改/apps/nginx/sbin 也可
nginx -V

Nginx 的核心配置指令

第二步:修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置(修改之前进行备份)。

cd /usr/local/nginx/conf/              #/apps/nginx/conf 同理
cp nginx.conf nginx.conf.bak           #备份
vim nginx.conf
    server {
        listen       80;
        server_name  www.mybj123.com;
        charset utf-8;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }
        ##添加 stub_status 配置
        location /status {				##访问位置为/status
            stub_status on;				##打开状态统计功能
            access_log off;				##关闭此位置的日志记录
        }

nginx.conf 配置文件

添加 stub_status 配置

第三步:重启服务后进行访问测试。

systemctl restart nginx.service

重启服务

浏览器访问 http;//192.168.79.210/status

Active connections ∶ 表示当前的活动连接数;
server accepts handled requests∶表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的 TCP 握手次数已处理的请求数。
可 curl http∶//192.168.79.210/status 结合 awk 与 if 语句进行性能监控。

2.基于授权的访问控制

第一步:生成用户密码认证文件。

yum install -y httpd-tools
#安装工具
htpasswd -c /usr/local/nginx/passwd.db zhangsan
#生成用户密码认证文件(注意路径
chown nginx /usr/local/nginx/passwd.db 
chmod 400 /usr/local/nginx/passwd.db
#修改属性和赋予执行权限

生成用户密码认证文件

修改属性和赋予执行权

第二步:修改主配置文件相应的目录,添加认真配置。

vim /usr/local/nginx/conf/nginx.conf
#路径/apps/nginx/conf/nginx.conf
 location / {
            root   html;
            index  index.html index.htm;
            #添加认证配置
            auth_basic "secret";					#设置密码提示框文字信息
            auth_basic_user_file /usr/local/nginx/passwd.db;
        }

修改主配置文件相应的目录

第三步:检查错误,重启服务,访问测试。

nginx -t
systemctl restart nginx.service 
curl 192.168.79.210

检查错误,重启服务,访问测试

访问测试

3.基于客户端访问控制

访问控制规则如下:

  • deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
  • allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
  • 规则从上往下执行,如果匹配到则停止,不会再往下继续匹配。

第一步:在主配置文件中添加控制规则。

vim /usr/local/nginx/conf/nginx.conf
#注意路径/apps/nginx/conf/nginx.conf
        location / {
            root   html;
            index  index.html index.htm;
            auth_basic "secret";
            auth_basic_user_file /usr/local/nginx/passwd.db;
            # 添加控制规则
            deny 192.168.80.77;					#拒绝访问的客户端 IP
            allow all;							#允许其他所有客户端访问
        }

主配置文件中添加控制规则

第二步:重启服务。

systemctl restart nginx.service

重启服务

第三步:被拒绝的客户端访问测试。

192.168.79.220 访问
curl 192.168.79.210

被拒绝的客户端访问测试

第四步:其他客户端访问测试。

192.168.79.210 访问
curl 192.168.79.210
192.168.79.230 访问
curl 192.168.79.210

其他客户端访问测试

其他客户端访问测试

4.基于域名的 nginx 虚拟主机

第一步:为虚拟主机提供域名和 IP 的映射。

echo "192.168.79.210 www.xxx.com www.mybj123.com" >> /etc/hosts

第二步:为虚拟主机准备网页文档。

mkdir -p /var/www/html/xxx/
mkdir -p /var/www/html/mybj/
echo "<h1>www.xxx.com</h1>" > /var/www/html/xxx/index.html
echo "<h1>www.mybj123.com</h1>" > /var/www/html/mybj/index.html

为虚拟主机准备网页文档

第三步:还原 nginx 主配置文件。

之前做过访问控制,所以直接将备份配置进行还原。

cd /usr/local/nginx/conf           #/apps/nginx/conf 路径同理 
cp nginx.conf.bak nginx.conf       #还原主配置文件

还原 nginx 主配置文件

第四步:修改主配置文件。

vim /usr/local/nginx/conf/nginx.conf
#/apps/nginx/conf/nginx.conf 同理
    server {
        listen       80;
        server_name  www.mybj123.com;						#设置域名			
        charset utf-8;									#设置网页字符集
        access_log  logs/mybj123.com.access.log;			#设置日志名
        location / {
            root   /var/www/html/mybj123;					#设置 www.bxb.com 的工作目录
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       80;			
        server_name  www.xxx.com;						#设置域名
        charset utf-8;									#设置网页字符集
        access_log  logs/xxx.com.access.log;			#设置日志名
        location / {
            root   /var/www/html/xxx;					#设置 www.bxb.com 的工作目录
            index  index.html index.htm;
        }

第五步:重启 nginx 后进行访问测试。

systemctl restart nginx.service
curl www.xxx.com
curl www.mybj123.com

5.基于 IP 的 nginx 虚拟主机

第一步:添加虚拟网卡,修改主配置文件。

ifconfig ens33:0 192.168.79.211/24
vim /usr/local/nginx/conf/nginx.conf
#/apps/nginx/conf/nginx.conf 同理
    server {
        listen       192.168.79.210:80;				#修改监听的为 ip
        server_name  www.mybj123.com;
        charset utf-8;
        access_log  logs/mybj123.com.access.log;
        location / {
            root   /var/www/html/mybj123;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       192.168.79.211:80;				#修改监听的为 ip
        server_name  www.xxx.com;
        charset utf-8;
        access_log  logs/xxx.com.access.log;
        location / {
            root   /var/www/html/xxx;
            index  index.html index.htm;
        }

添加虚拟网卡

第二步:检查配置文件,重启服务。

nginx -t
systemctl restart nginx.service

检查配置文件

第三步:客户端上访问测试。

curl 192.168.79.210:80
curl 192.168.79.211:80

6.基于端口的 nginx 虚拟主机

第一步:修改主配置文件。

vim /usr/local/nginx/conf/nginx.conf
#/apps/nginx/conf/nginx.conf 同理
    server {
        listen       192.168.79.210:666;				#修改监听的为 ip 的 666 端口
        server_name  www.mybj123.com;
        charset utf-8;
        access_log  logs/mybj123.com.access.log;
        location / {
            root   /var/www/html/mybj123;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       192.168.79.211:888;			    #修改监听的为 ip 的 888 端口
        server_name  www.xxx.com;
        charset utf-8;
        access_log  logs/xxx.com.access.log;
        location / {
            root   /var/www/html/xxx;
            index  index.html index.htm;
        }

第二步:检查配置文件,重启服务。

nginx -t
systemctl restart nginx.service

第三步:客户端上访问测试。

curl 192.168.79.210:666
curl 192.168.79.211:888

以上就是关于 Nginx 的搭建与核心配置教程的全部内容,更多相关 Nginx 搭建与配置内容请搜索码云笔记以前的文章或继续浏览下面的相关文章。

以上关于Nginx安装搭建与核心配置教程的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » Nginx安装搭建与核心配置教程

发表回复