基于Nginx搭建Web服务器及虚拟主机相关配置详解

随着计算机与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的安装顺利完成:

[[email protected] ~]# yum -y install pcre-devel zlib-devel

2)创建运行用户、组

[[email protected] ~]# useradd -M -s /sbin/nologin nginx

3)编译安装Nginx

[[email protected] ~]# tar zxf nginx-1.12.0.tar.gz -C /usr/src
[[email protected] ~]# cd /usr/src/nginx-1.12.0/
[[email protected] nginx-1.12.0]# ./configure --prefix=/usr/local/nginx  --user=nginx --group=nginx --with-http_stub_status_module
//指定Nginx服务的安装目录、运行用户及组
启用http_stub_status_module模块支持状态统计,便于查看服务器的连接信息
[[email protected] nginx-1.12.0]# make && make install

4)优化路径

[[email protected] nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

2.Nginx服务的运行控制

1)检查Nginx服务配置文件

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

[[email protected] nginx-1.12.0]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

或者

[[email protected] nginx-1.12.0]# nginx -c /usr/local/nginx/conf/nginx.conf

2)启动、停止Nginx服务

[[email protected] ~]# nginx
//直接运行nginx命令即可启动Nginx服务
[[email protected] ~]# netstat -anpt | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      46231nginx: master
//默认也是TCP协议80端口,如果有其他Web服务软件,应修改其端口,避免冲突
[[email protected] ~]# lynx http://127.0.0.1
//可以使用lynx命令进行文本浏览器进行检查(需要安装lynx软件包)
[[email protected] ~]# killall -s HUP nginx
//重新加载Nginx配置文件
[[email protected] ~]# killall -s QUIT nginx
//停止Nginx服务

3)添加Nginx服务为系统服务

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

[[email protected] ~]# vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
PROG="/usr/local/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
        $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 1
esac
        exit 0

[[email protected] ~]# chmod +x /etc/init.d/nginx
[[email protected] ~]# chkconfig --add nginx
[[email protected] ~]# systemctl start nginx
//即可使用systemctl工具来管理Nginx服务

3.Nginx服务配置文件详解

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

1)全局配置

[[email protected] ~]# 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事件配置

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
                    …………………………                 //省略部分内容
events {
    use epoll;                                                     //使用epoll模型
    worker_connections  1024;                         //每个进程处理1024个连接
}

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

3)HTTP配置

[[email protected] ~]# 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来启动模块。除此之外,还要次改配置文件:

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
                         ……………………                   //省略部分内容
server {
…………           //省略部分内容,添写以下内容
 location /status{
        stub_status on;
        access_log  off;
        }
}
[[email protected] ~]# 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)准备网站目录及测试文件

[[email protected] ~]# mkdir -p /var/www/benet
[[email protected] ~]# mkdir -p /var/www/accp
[[email protected] ~]# echo "www.benet.com" > /var/www/benet/index.html
[[email protected] ~]# echo "www.accp.com" > /var/www/accp/index.html

(3)调整Nginx服务的主配置文件

[[email protected] ~]# 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;
        }

    }
}
[[email protected] ~]# systemctl restart nginx

(4)访问虚拟主机


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

原文地址:https://blog.51cto.com/14157628/2434832

时间: 2024-10-16 23:21:56

基于Nginx搭建Web服务器及虚拟主机相关配置详解的相关文章

使用LVS负载均衡搭建web群集的原理及安装配置详解

一.负载均衡LVS基本介绍 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器.这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtualserver.org. LVS是Linux内核标准的一部分.LVS是一个实现负载均衡集群的开源软件项目,通过 LVS 的负载均衡技术和 Linux操作系统可以实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性.可扩展性和可操作性.LVS架构从逻辑上可分为调度层.Se

linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数

############ 认识nginx #############Nginx:(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用.  其优点是轻量级(占有内存少),高并发(并发能力强),事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用ngi

构建基于Nginx的web服务器

构建基于Nginx的web服务器 一.简介 Nginx("engine x") 是一个高性能的HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器. Nginx 是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站 点开发的,它已经在该站点运行超过四年多了.Igor 将源代码以类BSD许可证的形式发布.自Nginx 发布四年来,Nginx 已经因为它的占有内存少.并发能力强.稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名了.目前国内各大

FTP服务器工作原理的及配置详解

FTP服务器工作原理的及配置详解 FTP工作原理概述 FTP:file transfer protocol 它也是一个C/S架构的服务.server:监听在套接字21/tcp端口.按照套接字监听工作状态可以分为两类: 命令连接:发送文件管理类命令,始终处于连接状态,始终监听在21/tcp端口. 数据连接:主要是实现数据传输,这种连接是按需连接的,而且在传输结束会立刻中断. 对于数据连接还有两种不同的工作模式: 主动工作的模式:服务器根据监听在21端口接收到的命令,使用自己的20号端口,将数据传输

全面inux主机安全配置详解--系统OS安全(第一部分)

Linux主机安全配置详解 系统安全分为: 第一部分: BIOS密码,更改合适启动选项(禁止改bios/禁止更改第一启动选项,防止恶意的引导) GRUB密码 系统密码(密码策略) 分区加密 第二部分: 最小权限法(su/sudo) 最小服务法 文件安全(suid/sgid/stick/chattr) pam模块的使用 升级系统和软件 系统安全: BIOS密码(bios/cmos) 调整BIOS引导设置 修改启动顺序,正确做法:第一启选项为磁盘 设置管理密码 禁用Ctrl+Alt+Del重启热键

全面inux主机安全配置详解--系统OS安全(第二部分)

系统安全 最小服务法 文件安全(suid/sgid/stick/chattr) 升级系统和软件 最小权限法(su/sudo) SSH安全建议 最小服务法(system v/xinetd) 关闭不需要的服务: # vim /root/service.sh #!/bin/bash service xinetd stop chkconfig xinetd off services="network sshd syslog lvm2-monitor messagebus sendmail crond g

轻松使用Nginx搭建web服务器

如果读者以前做过web开发的话,就应该知道如何去搭建一个web服务器来跑你的web站点,在windows下你可能会选择去用IIS,十分的快捷,在linux下,你可能首先会想到apache,"一哥"( W3Techs网站数据的排名)啦 今天小编要介绍后起之秀nginx来实现web服务器.小编在前面的博客中也详细的聊过apache的使用,如今又来说nginx的使用,读者可能以后搭建web服务器的话就不知道选用哪一种,O(∩_∩)O~,别急,小编这就来给读者分析一下Nginx和Apache区

生活杂谈之阿里云免费虚拟主机申请过程详解

对于我来说,拥有一个自己的网站是盼望已久的事情,如今终于实现了,我的网站搭建于2015年05月26日,那是一个值得纪念的日子.搭建一个网站对于初学者来说,第一感觉会认为那是”程序员”该做的事情,其实不然,不管你懂不懂代码,也不管是不是计算机专业毕业,你都可以不用花费一百块钱,轻松拥有自己独立的网站.我们这一百块主要用于购买一个网站域名,万网域名大概29-39块钱之间,同时一个域名可以使用一年,其次购买一台虚拟主机,阿里云虚拟主机可以购买28块钱每月的,也可以购买55块钱每月,如果你比较”高富帅”

vsftp虚拟用户登录配置详解

一.安装: 1.安装Vsftpd服务: # yum install vsftpd 2.安装DB4部件包: 这里要特别安装一个db4的包,用来支持文件数据库. # yum install db4-utils 二.系统帐户 1.建立Vsftpd服务的宿主用户: # useradd vsftpd -s /sbin/nologin 默认的Vsftpd的服务宿主用户是root,但是这不符合安全性的需要.这里建立名字为vsftpd的用户,用他来作为支持Vsftpd的服务宿主用户.由 于该用户仅用来支持Vsf