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 的配置及运行需要 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 启动:
ln -s /apps/nginx/sbin/nginx /usr/sbin/

创建 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

重新加载配置、设置开机自启并开启服务:
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 -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.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; ##关闭此位置的日志记录
}


第三步:重启服务后进行访问测试。
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 #还原主配置文件

第四步:修改主配置文件。
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安装搭建与核心配置教程的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » Nginx安装搭建与核心配置教程

微信
支付宝