前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Nginx虚拟主机配置

Nginx虚拟主机配置

作者头像
星哥玩云
发布2022-07-03 17:52:06
发布2022-07-03 17:52:06
1.5K0
举报
文章被收录于专栏:开源部署开源部署

Nginx中虚拟主机配置有多种方法:可以直接在主配置文件(Nginx.conf)中增加,也可以将所有的虚拟主机单独写一个文件然后在主配置段中包含进去(include 文件名),最后一种方法是每个虚拟主机都为一个单独的配置文件。本篇以第三种方法来做演示

首先确保Nginx已经安装完成接下来创建虚拟主机的配置文件及虚拟主机文件所在的目录(我的安装路径在/usr/local/Nginx)

cd /usr/local/nginx/conf              #切换到配置文件目录 mkdir  vhosts                            #创建虚拟主机配置文件所在的目录 touch vhosts/vhost1.conf          #创建第一个虚拟主机的配置文件

在此文件中加入如下行:

server {

        listen  80;                                                       # 设置监听端口;

        server_name     www.test.com;                     # 设置主机名;

        location / {                                                      # 定义网站跟目录;

                root    /web/vhost/test1;                         # 此目录如果不存在则需创建

                index   index.html;                                 # 此文件也需要事先创建

        }

        error_page      500 502 503 504 /usr/local/nginx/html/50x.html;     # 定义页面状态码为5XX系列的错误页面

        access_log      /web/vhost/test1/logs/test1.access.log;                  # 设置访问日志路径

        error_log       /web/vhost/test1/logs/logs/test1.error.log      crit;      # 设置错误日志路径

}

如果有关上方的目录及文件不存在则按照一下方法创建

mkdir /web/vhost/test/logs -p touch /web/vhost/test/index.html 编辑index.html文件随便添加内容然后保存退出即可

这时虚拟主机的配置文件已经搞定,但是重启nginx服务是不会生效的因为并没有包含进去,打开nginx.conf文件将其添加至http{}段的最后一行,一定要在http段中。

由于是测试使用所以打开浏览器可能也不会访问到,这时可以修改本机的hosts文件添加如下内容:

IP(web server 的服务器ip地址)    hostname(就是我们定义的server_name)

全部设置完成后就可以重启nginx服务器了,如果没有添加服务启动脚本的话可以使用nginx -s quit && nginx启动(如果没有将nginx的sbin目录加入到环境变量中就需要使用绝对路径来启动它/usr/local/nginx/sbin/nginx -s quit && /usr/local/nginx/sbin/nginx)

查看下访问结果

接下来为此虚拟主机开启状态监控功能,在虚拟主机的配置文件中加入一下内容

location /status{         stub_status     on;                    #启动状态功能         access_log      off;                   #关闭访问日志         }

使用nginx -t 来检查配置文件是否正常,如果出现一下内容表示配置文件正常,可以重启nginx服务

然后在浏览器中输入www.test.com/status 查看状态页面是否显示

活跃连接数2个,接受5个请求    处理5个请求    响应64个(我一直在刷新。。)    读0个    写1个    等待1个

 一般这些状态页面是不允许未经授权的用户访问的,所以我们需要设置一下用户认证,在虚拟主机的状态页面中添加如下内容:

auth_basic "admin";         auth_basic_user_file /web/vhost/test1/.passwd;

接下来在/web/vhost/test1/目录下生成.passwd文件生成方法有以下两种

A.使用htpasswd工具直接生成

htpasswd -c -m  /web/vhost/test1/.passwd                                  #    htpasswd 为httpd的工具如果无法使用请安装yun imstall httpd-tools

B.使用openssl 加密后手动创建文件并添加

openssl passwd -apr1 -salt `echo $RANDOM` touch /web/vhost/test1/.passwd

此文件的格式为:

用户名:密码

使用nginx -t检查下,如果配置文件没问题那就重读下配置文件 nginx -s reload 然后打开浏览器尝试访问

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档