千家信息网

Nginx虚拟主机相关配置详解

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,随着计算机与Internet技术的高速发展,各种各样的Web站点也就成为面向用户的中坚力量。在各种网站服务器软件中。除了Apache外,还有一款轻量级的HTTP服务器软件--Nginx。基于Apach
千家信息网最后更新 2025年01月23日Nginx虚拟主机相关配置详解

随着计算机与Internet技术的高速发展,各种各样的Web站点也就成为面向用户的中坚力量。在各种网站服务器软件中。除了Apache外,还有一款轻量级的HTTP服务器软件--Nginx

基于Apache搭建Web服务器可以参考博文:基于Apache搭建Web服务器详解

一、Nginx服务简介

Nginx由俄罗斯的lgor Sysoev开发,专为性能优化而开发,其最知名的优点就是它的稳定性和低系统资源消耗、以及对HTTP并发连接的高处立能力(单台物理服务器可支持30000~50000个并发请求)。正因为如此,大量提供社交网络、新闻资讯、电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务。

搭建Web服务如果是为了解析静态网页、动态网页等、不需要太多的功能,那么Nginx绝对是首选。

二、编译安装Nginx服务

Nginx最新的稳定版本为1.12.0,可以通过官网http://nginx.org/ 或者网盘链接:https://pan.baidu.com/s/1H5DHcVWMPGDWFQ-kDsS7XA
提取码:1zyi
进行下载使用。

1.编译安装Nginx服务

1)安装支持软件

Nginx的配置及运行需要pcre(支持正则表达式)、zlib(支持压缩)等软件包的支持,因此应先安装这些软件的开发包,以便提供提供相应的功能,确保Nginx的安装顺利完成:

[root@localhost ~]# yum -y install pcre-devel zlib-devel
2)创建运行用户、组
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
3)编译安装Nginx
[root@localhost ~]# tar zxf nginx-1.12.0.tar.gz -C /usr/src[root@localhost ~]# cd /usr/src/nginx-1.12.0/[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx \ --user=nginx --group=nginx --with-http_stub_status_module//指定Nginx服务的安装目录、运行用户及组启用http_stub_status_module模块支持状态统计,便于查看服务器的连接信息[root@localhost nginx-1.12.0]# make && make install
4)优化路径
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

2.Nginx服务的运行控制

1)检查Nginx服务配置文件

与Apache的主程序httpd相似,Nginx也是使用"-t"选项对其配置文件进行语法检查。若要检查位于其他位置的配置文件,可使用"-c"选项来指定路径。

[root@localhost nginx-1.12.0]# nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
2)启动、停止Nginx服务
[root@localhost ~]# nginx//直接运行nginx命令即可启动Nginx服务[root@localhost ~]# netstat -anpt | grep nginxtcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      46231nginx: master //默认也是TCP协议80端口,如果有其他Web服务软件,应修改其端口,避免冲突[root@localhost ~]# lynx http://127.0.0.1//可以使用lynx命令进行文本浏览器进行检查(需要安装lynx软件包)[root@localhost ~]# killall -s HUP nginx//重新加载Nginx配置文件[root@localhost ~]# killall -s QUIT nginx//停止Nginx服务
3)添加Nginx服务为系统服务

为了使Nginx服务的启动、停止、重载等操作更加方便,可以编写Nginx服务脚本。脚本内容如下:

[root@localhost ~]# vim /etc/init.d/nginx#!/bin/bash# chkconfig: - 99 20PROG="/usr/local/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"case "$1" instart)        $PROG;;stop)        kill -s QUIT $(cat $PIDF);;restart)        $0 stop        $0 start;;reload)        kill -s HUP $(cat $PIDF);;*)        echo "Usage: $0 {start|stop|restart|reload}"        exit 1esac        exit 0[root@localhost ~]# chmod +x /etc/init.d/nginx[root@localhost ~]# chkconfig --add nginx[root@localhost ~]# systemctl start nginx//即可使用systemctl工具来管理Nginx服务

3.Nginx服务配置文件详解

Nginx服务的主配置文件为:/usr/local/nginx/conf/nginx.conf。

1)全局配置
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf#user  nginx;                                               //运行用户worker_processes  1;                                 //工作进程数量#error_log  logs/error.log;                           //错误日志文件的位置#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;                             //PID文件的存放位置

worker_processes配置项表示工作进程的数量,若服务器有多块CPU或者使用多核处理器,可以参考CPU核心总数来指定工作进程数(可以使用命令cat /proc/cpuinfo | grep "processor" | wc -l
);如果网站访问量需求不大,一般设为1即可(根据情况自行调整)。

2)I/O事件配置
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf                    …………………………                 //省略部分内容events {    use epoll;                                                     //使用epoll模型    worker_connections  1024;                         //每个进程处理1024个连接}

对于2.6版本及以上的内核,建议使用epoll模型来提高性能。

3)HTTP配置
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf                    …………………………                 //省略部分内容http {    include       mime.types;                               //支持多媒体格式    default_type  application/octet-stream;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';     //日志主格式    access_log  logs/access.log  main;           //访问日志存放位置    sendfile        on;                                        //开启高效传输文件模式    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;                             //连接超时时间(默认是秒)    #gzip  on;    server {                                                    //Web服务的监听配置        listen       80;                                       //监听地址及端口        server_name  localhost;                     //网站名称        charset utf-8;                                      //网页的默认字符集        location / {                                          //根目录配置(必须存在)            root   html;                                     //网站根目录的位置            index  index.html index.php;         //默认首页        }        error_page   500 502 503 504  /50x.html;              //内部错误的反馈页面        location = /50x.html {                                              //错误页面配置            root   html;        }    }}

root语句用来设置特定访问位置的网页文档路径,默认为Nginx安装目录下的html子目录。根据实际情况自行修改。

三、访问状态统计及虚拟主机应用

1.Nginx的访问状态统计

Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况,编译安装Nginx时需添加--with-http_stub_status_module来启动模块。除此之外,还要次改配置文件:

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf                         ……………………                   //省略部分内容server {…………           //省略部分内容,添写以下内容 location /status{        stub_status on;        access_log  off;        }}[root@localhost ~]# systemctl restart nginx

用户测试访问:

其中"Active connections"表示当前的活动连接数;
"server accepts handled requests"表示已处理的连接信息:
三个数字依次表示已处理的连接数、成功的TCP握手次数、已处理的请求数。

2.基于域名的虚拟Web主机

基于域名的虚拟Web主机通过域名区分不同的Web站点。使用Nginx搭建虚拟主机服务器时,每个虚拟Web站点拥有独立的"server{}"配置段各自的IP地址、端口号、域名都可自行指定。本次示例创建用于不同域名的虚拟主机。

创建虚拟主机的基本步骤:

(1)搭建DNS服务,使两个域名解析为同一IP地址。

搭建DNS服务可以参考博文:Linux搭建DNS服务

(2)准备网站目录及测试文件
[root@localhost ~]# mkdir -p /var/www/benet[root@localhost ~]# mkdir -p /var/www/accp[root@localhost ~]# echo "www.benet.com" > /var/www/benet/index.html[root@localhost ~]# echo "www.accp.com" > /var/www/accp/index.html
(3)调整Nginx服务的主配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf              ………………                    //省略部分内容http {              ………………                    //省略部分内容  server {        listen       80;        server_name  www.benet.com;        charset utf-8;        location / {            root   /var/www/benet;            index  index.html index.php;        }        location /status{        stub_status on;        access_log  off;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }    server {        listen       80;        server_name  www.accp.com;        charset utf-8;        location / {            root   /var/www/accp;            index  index.html index.php;        }        location /status{        stub_status on;        access_log  off;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }}[root@localhost ~]# systemctl restart nginx
(4)访问虚拟主机


-------- 本文至此结束,感谢阅读 --------

服务 配置 文件 主机 内容 服务器 软件 支持 虚拟主机 位置 域名 部分 运行 用户 网站 处理 状态 网页 进程 检查 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 人才需求智能应用软件开发 网络安全法发展历史 手机版方舟怎么登录服务器 php本地服务器软件 服务器主机硬盘多大 视频网络安全事件应急响应 日照进销存软件开发费用 内部服务器错误 500 如何处理服务器异常 海南服务器机柜生产商 珠海地产软件开发费用是多少 服务器主板通讯异常是什么原因 宇星魔指网络技术有限公司 电脑跟服务器直连ping不通 盘点机数据库未连接 蚌埠嘉锐互联网科技有限公司 推广软件开发教程 古诗词取名软件开发 软件开发制作流程 四川电视台文化旅游频道网络安全 数据库怎么查询最后一条信息 房地产后台数据库需要什么 信息网络安全保密工作的核心 设计学校的网络安全建设方案 苹果电脑网络安全密钥是什么 税务软件开发票不确定商品编码 靠谱的软件开发系统 服务器安全模式如何进入 深圳软件开发公司元宇宙 三明学院计算机网络技术
0