`

使用nginx做静态文件服务器

阅读更多

1.系统环境

操作系统:centos5.2

 

文件服务器只是提供静态文件服务

2.安装nginx

需安装pcre-8.35.tar.gz 

这是一种正则表达式的包,一般现在最新的,地址在:

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/      ;

,使用下面命令下载编译和安装 PCRE 包:

# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gz
# tar -zxvf pcre-8.35.tar.gz
# cd pcre-8.35

# ./configure

# make

# make install

如果报错:error: no acceptable C compiler found in $PATH  ,则直接  yum install gcc-c++ 安装gcc编译器

 

#wget http://nginx.org/download/nginx-1.7.2.tar.gz

#tar -zxvf nginx-1.7.2.tar.gz

然后进入到 cd nginx-1.7.2,

shell>./configure --prefix=/usr/local/nginx --with-http_stub_status_module 

shell>make

shell>make install

 

./configure 时报错是:error: the HTTP gzip module requires the zlib library.

用命令查看rpm -qa |grep zlib ,已经安装其实我们需要的是安装这个

用命令 yum -y install zlib-devel

 

其中参数 --with-http_stub_status_module 是为了启用 nginx 的 NginxStatus 功能,用来监控 Nginx 的当前状态。

        检查是否安装成功

         #cd  /usr/local/nginx/sbin

         #./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

     则表示安装成功!

       安装成功后 /usr/local/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。其中 Nginx 的配置文件存放于 conf/nginx.conf,Nginx 只有一个程序文件位于 sbin 目录下的 nginx 文件。确保系统的 80 端口没被其他程序占用,运行 sbin目录下运行./nginx 命令来启动 Nginx,打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

 

 

注:在64位系统上启动时有可能报如下错误:

Nginx: error while loading shared libraries: libpcre.so.1

解决办法如下:

ln -s /usr/local/lib/libpcre.so.1 /lib64/libpcre.so.1

查看nginx编译参数:
   nginx安装目录下:
   /usr/local/nginx/sbin/nginx -V     表示查看编译参数;
                                   -v       表示查看版本。

3.配置nginx

编辑/usr/local/nginx/conf文件

也可以将conf目录下的nginx.conf 文件拷贝到/nginx/nginx.conf

 

 

全局参数设置:

user  nobody;                               ##使用普通帐号nobody启动服务##

worker_processes  8;                   ##工作进程设置##

error_log  logs/error.log;

pid        logs/nginx.pid;

events {

    worker_connections  5000;        ##每worker_processes进程的最大连接数##

    use epoll;                                  ##使用epoll##

}

http{ }项参数设置:

server_names_hash_bucket_size 64;  ##当设置多个虚拟主机sever时,需增大此参数,默认32#

server_tokens off;                         ##禁止显示nginx软件的版本号##

sendfile     on;

tcp_nodelay       on;

keepalive_timeout  30;

4.虚拟主机的设置

 

" www.test.com "的设置:

 server {

        listen       80;

        server_name  www.test.com ;

        charset utf-8;

        root   /data/www.test.com ;

        index  index.html index.htm;

       }

 

 

5.服务的启动停止

设置自启动

nginx的启动脚本可由支持centos版本的nginx的rpm的安装文件取得,拷贝到

/etc/init.d/目录下。修改启动脚本的两个参数项:

nginx="/usr/local/nginx/sbin/nginx"

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

 

   执行以下命令
  

   Nginx开启命令:/usr/local/nginx/sbin/./nginx
   Nginx停止命令: /usr/local/nginx/sbin/./nginx -s stop
   Nginx的热启动:#usr/local/nginx/sbin/./nginx   -s  reload

 

   chkconfig --add nginx
   chkconfig nginx on
   执行/etc/init.d/nginx start   启动
   /etc/init.d/nginx stop     停止

 

以上基本的nginx就可以使用了。

 

另外可以编写启动脚本如下:

#! /bin/sh

 

### BEGIN INIT INFO

# Provides:          nginx

# Required-Start:    $remote_fs $syslog

# Required-Stop:     $remote_fs $syslog

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: nginx init.d dash script for Redhat or other *nix.

# Description:       nginx init.d dash script for Redhat or other *nix.

### END INIT INFO

 

#------------------------------------------------------------------------------

#                               Consts

#------------------------------------------------------------------------------

 

prefix=/usr/local/nginx

exec_prefix=${prefix}

 

nginx_BIN=${exec_prefix}/sbin/nginx

nginx_CONF=${prefix}/conf/nginx.conf

nginx_PID=${prefix}/logs/nginx.pid

 

#------------------------------------------------------------------------------

#                               Simple Tests

#------------------------------------------------------------------------------

 

#test if nginx is a file and executable

test -x $nginx_BIN || exit 0

 

# Include nginx defaults if available

if [ -f /etc/default/nginx ] ; then

    . /etc/default/nginx

fi

 

#set exit condition

#set -e

 

#------------------------------------------------------------------------------

#                               Functions

#------------------------------------------------------------------------------

 

setFilePerms(){

    if [ -f $nginx_PID ]; then

        chmod 400 $nginx_PID

    fi

}

 

configtest() {

    $nginx_BIN -t -c $nginx_CONF

}

 

#courtesy of php-fpm

wait_for_pid () {

    try=0

 

    while test $try -lt 35 ; do

        case "$1" in

            'created')

            if [ -f "$2" ] ; then

                try=''

                break

            fi

            ;;

 

            'removed')

            if [ ! -f "$2" ] ; then

                try=''

                break

            fi

            ;;

        esac

 

        try=`expr $try + 1`

        sleep 1

    done

}

 

status(){

if [ ! -r $nginx_PID ] ; then

echo "nginx is stopped"

exit 0

fi

 

PID=`cat $nginx_PID`

if ps -p $PID | grep -q $PID; then

echo "nginx (pid $PID) is running..."

else

echo "nginx dead but pid file exists"

fi

}

 

removePIDFile(){

    if [ $1 ]; then

        if [ -f $1 ]; then

            rm -f $1

        fi

    else

        #Do default removal

        if [ -f nginx_PID ]; then

            rm -f nginx_PID

        fi

    fi

}

 

start() {

echo -n "Starting nginx "

 

$nginx_BIN -c $nginx_CONF

 

if [ "$?" != 0 ] ; then

echo " failed"

exit 1

fi

 

wait_for_pid created $nginx_PID

 

if [ -n "$try" ] ; then

echo " failed"

exit 1

else

echo " done"

fi

}

 

stop() {

echo -n "Gracefully shutting down nginx "

 

if [ ! -r $nginx_PID ] ; then

echo "warning, no pid file found - nginx is not running ?"

exit 1

fi

 

kill -INT `cat $nginx_PID`

 

wait_for_pid removed $nginx_PID

 

if [ -n "$try" ] ; then

echo " failed. Use force-quit"

exit 1

else

echo " done"

fi

}

 

reload() {

    echo -n "Reload service nginx"

 

if [ ! -r $nginx_PID ] ; then

echo "warning, no pid file found - nginx is not running ?"

exit 1

fi

 

kill -HUP `cat $nginx_PID`

 

echo " done"

}

 

quietupgrade() {

    echo -n "Peforming Quiet Upgrade nginx"

 

if [ ! -r $nginx_PID ] ; then

echo "warning, no pid file found - nginx is not running ?"

exit 1

fi

 

kill -USR2 `cat nginx_PID`

kill -WINCH `cat nginx_PID.oldbin`

 

if [ ! -r $nginx_PID ] ; then

kill -QUIT `cat nginx_PID.oldbin`

wait_for_pid removed nginx_PID.oldbin

removePIDFile nginx_PID.oldbin

 

echo " done"

else

echo " failed"

exit 1

 

echo -n "ERROR! Reverting back to original nginx"

 

kill -HUP `cat nginx_PID`

kill -TERM `cat nginx_PID.oldbin`

kill -QUIT `cat nginx_PID.oldbin`

 

wait_for_pid removed nginx_PID.oldbin

removePIDFile nginx_PID.oldbin

 

echo " done"

fi

}

 

terminate() {

    echo -n "Force terminating (via KILL) nginx"

 

if [ ! -r $nginx_PID ] ; then

echo "warning, no pid file found - nginx is not running ?"

exit 1

fi

 

kill -TERM `cat $nginx_PID`

 

wait_for_pid removed $nginx_PID

 

if [ -n "$try" ] ; then

echo " failed"

exit 1

else

echo " done"

fi

}

 

destroy() {

    echo -n "Force terminating and may include self (via KILLALL) nginx"

    killall nginx -q >> /dev/null 2>&1

    echo " done"

}

 

case "$1" in

    start)

        start

        ;;

    stop)

        stop

        ;;

force-quit)

terminate

;;

    restart)

        stop

        sleep 1

        start

        ;;

    reload)

        $1

        ;;

    status)

        status

        ;;

    configtest)

        $1

        ;;

    quietupgrade)

        $1

        ;;

    destroy)

        $1

        ;;

    *)

        echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest|quietupgrade|destroy}"

        echo "       The 'destroy' command should only be used as a last resort." 

        exit 1

        ;;

esac

 

exit 0

 

将以上脚本在 /etc/init.d/ 目录下创建文件   nginx ,并粘贴上以上的脚本保存;

设置nginx的权限:

# chmod 777 /etc/init.d/nginx

将nginx启动命令脚本设置为服务:

#chkconfig --add  nginx

设置nginx开机启动,启动级别

# chkconfig --level 2345 nginx on

查看开机启动配置信息

# chkconfig --list  nginx

 

OK,  到此,脚本启动相关完成!

 

 

http://www.oschina.net/question/8676_7661   这个文章不错

 

http://www.cnblogs.com/tommyli/archive/2013/02/27/2935213.html   参考的

分享到:
评论

相关推荐

    nginx window下的静态文件服务器

    nginx window下的静态文件服务器 location /file/ { alias D:/upload/test/; #换成你的本地磁盘位置 index autoindex on; }

    nginx访问静态文件不下载.rar

    标题 "nginx访问静态文件不下载" 暗示了用户可能遇到了在使用Nginx服务器时,尝试访问静态文件(如HTML、CSS、JavaScript或图片等)却导致浏览器下载文件而不是正常显示的情况。Nginx是一款高性能的HTTP和反向代理...

    linux服务器上使用nginx访问本地静态资源的方法

    1.查看80端口是否被占用,一般80端口多被apache服务占用。 netstat -anp|grep 80  2.修改apache服务的端口号 ...以上所述是小编给大家介绍的linux服务器上使用nginx访问本地静态资源的方法,希望对大家有所帮助!

    nginx静态文件缓存的解决方案1

    确保 Nginx 知道静态文件的存储位置,可以在相应 `location` 中使用 `root` 指令: ```nginx location ~ .*\.(html)$ { default_type 'text/html'; root "/usr/local/openresty/nginx/html"; } ``` `root` 指令...

    nginx动静态分离,静态文件

    这个配置文件将静态资源和动态资源分离,使用Nginx服务器来处理静态资源,而动态资源则由应用服务器来处理。 Nginx动静态分离的优点 1. 提高服务器性能:Nginx动静态分离可以减少应用服务器的压力,提高服务器的...

    nginx配置静态文件服务器详解

    本文主要介绍一些Nginx做图片服务器的简单配置,但不包括Nginx的安装部署以及实现原理。 配置步骤 下载nginx Windows nginx安装教程及简单实践 配置nginx\nginx-1.13.4\conf\nginx.conf文件 #user nobody; ...

    Nginx实现静态网站部署资源

    要部署静态网站,你需要告诉Nginx静态文件的位置。在`http`块或者`server`块内,创建一个`location`块来指定静态文件目录,例如: ``` location / { root /var/www/html; index index.html index.htm; } ``` ...

    haigeek#mynotes#使用Nginx作为静态服务器1

    使用Nginx作为静态服务器文件服务器在nginx的配置文件设置以下几个地方便可实现一个简单的文件服务器##显示索引##显示大小##显示时间#静态资源文件服务器

    nginx伪静态配置

    在Web服务器领域,Nginx以其高效、轻量级的特性,被广泛用于处理静态文件、反向代理和负载均衡等任务。其中,Nginx的伪静态配置是将动态URL转换为静态或看似静态的URL,以提高搜索引擎优化(SEO)和网站性能。以下将...

    nginx发布前端静态文件配置

    以上就是关于Nginx发布前端静态文件的基本配置。理解并熟练掌握这些配置,将有助于构建高效、可靠的Web服务。不过,实际部署时还需要根据具体需求进行调整,例如SSL/TLS证书配置、访问日志记录等。在实践中不断学习...

    2020T5友价商城源码系统nginx伪静态重写规则.zip

    Nginx作为一款高性能的Web服务器,支持通过配置重写规则来实现伪静态,这正是"T5友价商城源码系统nginx伪静态重写规则.txt"文件所包含的内容。 Nginx的重写规则通常在server或location块中定义,使用rewrite指令...

    nginx 映射本地文件

    Nginx擅长处理静态文件请求,可以高效地进行文件传输,因此在静态资源服务方面表现出色。 ### 2. 实现本地文件映射的步骤 #### 2.1 安装Nginx 首先,你需要在你的服务器上安装Nginx。在Ubuntu或Debian系统中,...

    Nginx高性能Web服务器详解(完整版)pdf下载

    Nginx是一款高性能的Web服务器,它以其反向代理、负载均衡、静态文件处理和高效非阻塞I/O模型而闻名。Nginx的设计理念是轻量级、高并发,因此在处理高流量网站时表现出色。以下是Nginx的一些核心知识点: 1. **模块...

    nginx伪静态隐藏.php后缀,在url后补斜杠/

    要实现 Nginx 下的伪静态配置,主要是通过修改 Nginx 的配置文件来添加相应的重写规则。以下是一些关键步骤: ##### 2.1 准备工作 - **确认 Nginx 版本**:确保 Nginx 版本支持 URL 重写功能。 - **备份现有配置...

    nginx 伪静态 重定向

    Nginx,作为一款高性能的HTTP服务器和反向代理服务器,提供了强大的重定向功能,特别是其伪静态处理机制,能够帮助我们优雅地解决这些问题。 #### 2. 为什么需要伪静态与重定向 在网站运营过程中,若不实施有效的...

    nginx高性能web服务器.pdf

    这一模型使得Nginx在高并发场景下表现出色,尤其适合处理静态文件请求和HTTP反向代理任务。 其次,Nginx的模块化设计允许开发者通过组合各种功能模块来扩展其功能。例如,HTTP模块负责处理HTTP协议,而邮件模块则...

    centos 6.3安装nginx 搭建文件服务器

    在本文中,我们将深入探讨如何在CentOS 6.3操作系统上安装Nginx并用其搭建文件服务器。Nginx是一款高性能的Web服务器和反向代理服务器,因其高效的并发处理能力和稳定性而广受欢迎。首先,让我们从安装Nginx开始。 ...

Global site tag (gtag.js) - Google Analytics