分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

构建Nginx网站服务

发布时间:2023-09-06 01:36责任编辑:熊小新关键词:暂无标签
   随着计算机与Internet技术的蓬勃发展,各种Web站点成为直接面向用户的中坚力量,在各种网站服务器软件中,除了Apache外,还有一款轻量级的HTTP服务器软件——Nginx,其稳定性、高效的特性逐渐被越来越多的用户认可。本篇博客将搭建Nginx网站服务器,并配置基于域名的虚拟Web主机


Nginx的基本配置

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


1. 安装Nginx

    Nginx的安装文件可以从官方网站http://www.nginx.org/下载,下面以稳定片1.6.0为例,介绍Nginx的安装和运行控制

[root@localhost ~]# yum -y install pcre-devel zlib-devel            //Nginx的配置需要pcre、zlib等软件包的支持[root@localhost ~]# useradd -M -s /sbin/nologin nginx               //创建一个nginx的程序用户[root@localhost ~]# tar zxf nginx-1.6.0.tar.gz -C /usr/src/[root@localhost ~]# cd /usr/src/nginx-1.6.0/[root@localhost nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module[root@localhost nginx-1.6.0]# make && make install   //启用http_stub_status_module模块以支持状态统计,便于查看服务器的连接信息[root@localhost nginx-1.6.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/     [root@localhost nginx-1.6.0]# nginx -t                        //检查配置文件是否有错误nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost nginx-1.6.0]# nginx                           //开启服务[root@localhost nginx-1.6.0]# netstat -anpt | grep nginxtcp        0      0 0.0.0.0:80              0.0.0.0:*        LISTEN      4614/nginx  [root@localhost nginx-1.6.0]# killall -s HUP nginx           //重载服务[root@localhost nginx-1.6.0]# killall -s QUIT nginx          //关闭服务


2. 编写Nginx服务脚本

   为了使Nginx服务的启动、停止等操作更加方便,可以编写Nginx服务脚本,并使用chkconfig和service工具来进行管理

[root@localhost ~]# vim /etc/init.d/nginx      #!/bin/bash# chkconfig: 2345 99 20# description: Nginx Service Control ScriptPROG="/usr/local/nginx/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"case "$1" in  start)   netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null   if [ $? -eq 0 ]   then     echo "Nginx service already running."   else     $PROG -t &> /dev/null     if [ $? -eq 0 ] ; then       $PROG       echo "Nginx service start success."     else     $PROG -t     fi   fi   ;;  stop)   netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null   if [ $? -eq 0 ]   then    kill -s QUIT $(cat $PIDF)    echo "Nginx service stop success."    else    echo "Nginx service already stop"   fi  ;;  restart)    $0 stop    $0 start    ;;  status)   netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null   if [ $? -eq 0 ]   then     echo "Nginx service is running."   else     echo "Nginx is stop."   fi  ;;  reload)   netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null   if [ $? -eq 0 ]   then    $PROG -t &> /dev/null    if [ $? -eq 0 ] ; then      kill -s HUP $(cat $PIDF)      echo "reload Nginx config success."    else      $PROG -t    fi   else      $PROG -t    fi   else    echo "Nginx service is not run."    fi    ;;  *)   echo "Usage: $0 {start|stop|restart|reload}"   exit 1esac[root@localhost ~]# chmod +x /etc/init.d/nginx [root@localhost ~]# chkconfig --add nginx           //将nginx添加到系统服务


2. 配置文件nginx.conf

    在Nginx服务器的主配置文件,包括全局配置、I/O事件配置、HTTP配置三大块内容

(1)全局配置

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf#user  nobody;                     //运行用户worker_processes  1;               //工作进程数量,可参考CPU核心总数来指定工作进程数#error_log  logs/error.log;        //错误日志文件的位置#pid        logs/nginx.pid;        //PID文件的位置


(2)I/O事件配置

    建议使用epoll模型以提高性能,进程的连接数根据实际需求来定,一般在10000以下(默认1024)

events {    use epoll;                   //使用epoll模型    worker_connections  1024;    //每个进程处理1024个连接,可按需求进行调整}


(3)HTTP配置

   包括访问日志、HTTP端口、网页目录、默认字符集、连接保持等



Nginx的访问状态统计

    Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况。除了编译安装时需要启动该模块外,还需要修改nginx.conf配置文件,指定访问位置并打开stub_status配置

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf……省略部分内容    server {        location /status {        //访问的位置为/status          stub_status on;         //打开状态统计功能          access_log off;         //关闭此位置的日志记录}……省略部分内容}[root@localhost ~]# service nginx restart


    在浏览器中访问Nginx服务器的/status网站位置,可以看到当前的统计信息




配置虚拟Web主机

    在前面的Apache服务中,已经介绍了基于域名、基于IP地址、基于端口号三种虚拟Web主机。而使用Nginx搭建虚拟Web主机服务器时,每个虚拟Web站点拥有独立的“server{ }”配置项,网站名称、IP地址、端口号都可以单独指定,下面将配置基于域名的虚拟Web主机

(1)搭建DNS服务器

    这里采用另一种方法,修改hosts文件,只能在本机解析域名

[root@localhost ~]# vim /etc/hosts127.0.0.1       www.ysf.com127.0.0.1       www.yangshufan.com


(2)准备网站目录及测试文件

[root@localhost ~]# mkdir /var/www/ysf[root@localhost ~]# mkdir /var/www/yangshufan[root@localhost ~]# echo www.ysf.com > /var/www/ysf/index.html[root@localhost ~]# echo www.yangshufan.com > /var/www/yangshufan/index.html

(3)调整nginx.conf配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.confhttp {……省略部分内容    server {        listen       80;        server_name  www.ysf.com;        charset utf-8;        #access_log  logs/host.access.log  main;        location / {            root   /var/www/ysf;            index  index.html index.htm;        }     }    server {        listen       80;                server_name  www.yangshufan.com;        location / {            root   /var/www/yangshufan;            index  index.html index.htm;        }    }  }   [root@localhost ~]# service nginx reload


(4)访问虚拟Web主机

    在浏览器中分别访问两个站点,若能看到测试文件,就表示虚拟Web主机的配置成功




构建Nginx网站服务

原文地址:http://blog.51cto.com/yangshufan/2060354

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved