Nginx虚拟主机

目录

前言:

一.访问状态统计配置

1.查看已安装的所有模块

[2.修改 nginx.conf 配置文件](#2.修改 nginx.conf 配置文件)

3.重启服务,访问测试

二.基于授权的访问控制

1.生成用户密码认证文件

2.修改主配置文件相对应目录,添加认证配置项

3.重启服务,访问测试

三.基于客户端的访问控制

[四.基于域名的 Nginx 虚拟主机](#四.基于域名的 Nginx 虚拟主机)

1.为虚拟主机提供域名解析

2.为虚拟主机准备网页文档

3.修改nginx配置文件

4.重启服务,访问测试

[五.基于IP 的 Nginx 虚拟主机](#五.基于IP 的 Nginx 虚拟主机)

1.配置server

2.刷新检验

[六.基于端口的 Nginx 虚拟主机](#六.基于端口的 Nginx 虚拟主机)

1.基于端口

2.刷新检验

总结

前言:

上次和读者们分享了关于web的相关知识点以及nginx服务器安装的具体步骤,今天我想对nginx虚拟主机做一个详细的描述。

一.访问状态统计配置

1.查看已安装的所有模块

/usr/local/nginx/sbin/nginx -V: 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块

cat /opt/nginx-1.20.2/auto/options | grep YES:可查看 nginx 已安装的所有模块

2.修改nginx.conf配置文件

修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf
......
http {
......
server {
listen 80;
server_name www.benet.com;
charset utf-8;
location / {
root html;
index index.html index.php;
}

添加 stub_status 配置

location /status {
stub_status on; # 打开状态统计功能
access_log off; # 关闭此位置的日志记录
}
}
}

3.重启服务,访问测试

nginx -t
systemctl restart nginx
浏览器访问 http://10.0.0.10/status
Active connections :表示当前的活动连接数;
server accepts handled requests :表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP 握手次数、 已处理的请求数。

二.基于授权的访问控制

1.生成用户密码认证文件

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

2.修改主配置文件相对应目录,添加认证配置项

vim /usr/local/nginx/conf/nginx.conf
......
server {
location / {
......

添加认证配置

auth_basic "secret"; # 设置密码提示框文字信息
auth_basic_user_file /usr/local/nginx/passwd.db;
}
}

3.重启服务,访问测试

nginx -t
systemctl restart nginx
浏览器访问 http://192.168.10.21

三.基于客户端的访问控制

deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问
规则从上往下执行,如匹配则停止,不再往下匹配
vim /usr/local/nginx/conf/nginx.conf
......
server {
location / {
......

添加控制规则

allow 192.168.10.20; # 允许访问的客户端 IP
deny all; # 拒绝其它 IP 客户端访问
}
}
systemctl restart nginx


四.基于域名的Nginx虚拟主机

1.为虚拟主机提供域名解析

echo "192.168.10.21 www.yjs.com www.benet.com" >> /etc/hosts

2.为虚拟主机准备网页文档

mkdir -p /usr/local/nginx/html/benet
mkdir -p /usr/local/nginx/html/yjs

echo "<h1>www.yjs.com</h1>" > /usr/local/nginx/html/yjs/index.html
echo "<h1>www.benet.com</h1>" > /usr/local/nginx/html/benet/index.html

3.修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
server {
listen 80;
server_name www.yjs.com; # 设置域名 www.yjs.com
charset utf-8;
access_log logs/www.yjs.access.log; # 设置日志名
location / {
root /usr/local/nginx/html/yjs; # 设置 www.yjs.com 的工作目录
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}
}
server {
listen 80;
server_name www.benet.com; # 设置域名 www.benet.com
charset utf-8;
access_log logs/www.benet.access.log;
location / {
root /usr/local/nginx/html/benet;
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}
}
}

4.重启服务,访问测试

systemctl restart nginx
浏览器访问
http://www.test0.com

这里有一个小细节这里使用的域名并未在公共 DNS 服务器上注册,Windows 系统无法通过常规 DNS 解析找到该域名对应的服务器 IP,而修改 hosts 文件是手动建立这个域名与 IP 的映射关系的方法。

五.基于IPNginx虚拟主机

1.配置****server

ifconfig ens33:0 192.168.10.40 netmask 255.255.255.0
创建 一个 ens36 或者 37 的网卡 192.168.10.40
vim /usr/local/nginx/conf/nginx.conf
......
http {
......
server {
listen 10.0.0.52:80; # 设置监听地址 10.0.0.52
server_name www.yjs.com;
charset utf-8;
access_log logs/www.yjs.access.log;
location / {
root /usr/local/nginx/html/yjs;
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}1
}

2.刷新检验

systemctl restart nginx
浏览器访问
http://10.0.0.52

六.基于端口的Nginx虚拟主机

1.基于端口

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
server {
listen 192.168.10.22:8080; # 设置监听 8080 端口
server_name www.yjs.com;
charset utf-8;
access_log logs/www.yjs.access.log;
location / {
root /var/www/html/yjs;
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}
}

2.刷新检验

systemctl restart nginx
浏览器访问
http://10.0.0.10:8080

总结:

今天主要是讲解了基于不同情况下的nginx虚拟主机,对他们的参数设置进行了详细的描述,希望对读者们有所帮助!

相关推荐
ReaF_star15 小时前
【安全】SSL证书更新操作手册(Nginx+Cloudflare+acme.sh)
nginx·安全·ssl
云动课堂17 小时前
【运维实战】Nginx 高性能Web服务 · 一键自动化部署方案 (适配银河麒麟 V10 / openEuler / CentOS 7/8)
运维·前端·nginx
2601_949817921 天前
nginx 代理 redis
运维·redis·nginx
java1234_小锋1 天前
解释一下NGINX的反向代理和正向代理的区别?
运维·nginx
techdashen2 天前
Cloudflare 为何抛弃 NGINX,用 Rust 自研了一个代理
运维·nginx·rust
人生匆匆2 天前
通过nginx解决跨域问题
运维·nginx
子木HAPPY阳VIP2 天前
信创UOS,Docker 完整操作部署(Dockerfile部署方式)&排错整合
linux·运维·redis·nginx·docker·容器·tomcat
吹个口哨写代码2 天前
小程序图片不显示,直接访问显示,头部配置问题
javascript·css·nginx
m0_631653312 天前
阿里云单机双网终极部署与运维白皮书:Nginx + PM2 + Prisma 踩坑实战
运维·nginx·阿里云·部署
偶尔上线经常挺尸2 天前
《100个“反常识”经验15:Nginx 502排查:从应用到内核》
运维·nginx·性能调优·反向代理·502错误·http排错