惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
The Register - Security
The Register - Security
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
博客园 - 司徒正美
罗磊的独立博客
U
Unit 42
S
SegmentFault 最新的问题
Y
Y Combinator Blog
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
Schneier on Security
Schneier on Security
Know Your Adversary
Know Your Adversary
C
Check Point Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
The Hacker News
The Hacker News
博客园 - 叶小钗
C
Cybersecurity and Infrastructure Security Agency CISA
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Latest news
Latest news
L
Lohrmann on Cybersecurity
A
About on SuperTechFans
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
S
Securelist
A
Arctic Wolf
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Threatpost
Scott Helme
Scott Helme
博客园 - 聂微东
博客园 - 【当耐特】
T
Tenable Blog
I
Intezer
D
DataBreaches.Net
B
Blog RSS Feed
Security Latest
Security Latest
C
Cisco Blogs
T
Tor Project blog
N
Netflix TechBlog - Medium

博客园 - bigwhiteshark(云飞扬)

linux下svn定时更新项目 PHP合成图片、生成文字、居中对齐、画线、矩形、三角形、多边形、图片抗锯齿、不失真 高性能源码示例 Html5 Canvas transform setTransform uv纹理坐标设定与贴图规则 容易答错的JS笔试题 JavaScript严谨模式(Strict Mode) property和attribute的区别 深入理解javascript 中的 delete(转) javascript中的call()和apply()方法的使用 Javascript 异步加载详解(转) Javascript框架的自定义事件(转) array2json() - Convert PHP arrays to JSON 一些Vim使用的小技巧 virtualbox centos安装增强工具和Centos与VirtualBox共享文件夹设置 yum搭建lnmp环境(CentOS6.4) CentOS中文man安装配置 在Linux里设置环境变量的方法(export PATH) 更新CentOS防火墙设置开启80端口访问 Centos安装vim
centos 6.4 server 安装nginx
bigwhiteshark(云飞扬) · 2013-06-13 · via 博客园 - bigwhiteshark(云飞扬)

1.环境准备

yum -y install gcc gcc-c++ autoconf automake make

yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel 

yum install nginx

2.下载 nginx 

wget  http://nginx.org/download/nginx-1.2.1.tar.gz  

tar –xzvf nginx-1.2.1.tar.gz

cd nginx-1.0.2

./configure--sbin-path=/root/soft/nginx

configure 支持下面的选项: 

--prefix=<path> - Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。 

--sbin-path=<path> - Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx。 

--conf-path=<path> - 在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf。 

--pid-path=<path> - 在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为 <prefix>/logs/nginx.pid。 

--lock-path=<path> - nginx.lock文件的路径。 

--error-log-path=<path> - 在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为 <prefix>/logs/error.log。 

--http-log-path=<path> - 在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为 <prefix>/logs/access.log。 

--user=<user> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。 

--group=<group> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody。 

--builddir=DIR - 指定编译的目录 

--with-rtsig_module - 启用 rtsig 模块 

3.最后安装 

make && make install

我们测试一下nginx是否正常工作。因为我们把nginx的二进制执行文件配置安装在 /usr/local/sbin/nginx  (前面的configure参数 --sbin-path=/usr/local/sbin/nginx ),目录/usr/local/sbin/默认在linux的PATH环境变量里,所以我们可以省略路径执行它:

[root@fsvps nginx-1.2.1]# nginx

它不会有任何信息显示。打开浏览器,通过IP地址访问你的nginx站点,如果看到这样一行大黑字,就证明nginx已经工作了:

Welcome to nginx!

看上去很简陋,只是因为没有给它做漂亮的页面。我们来简单配置一下它的运行配置。我们configure的参数--conf-path=/usr/local/conf/nginx/nginx.conf 这就是它的配置文件。我们去看看。

[root@fsvps nginx-1.2.1]# cd /usr/local/conf/nginx/

[root@fsvps nginx]# ls

fastcgi.conf          fastcgi_params.default  mime.types          nginx.conf.default   uwsgi_params

fastcgi.conf.default  koi-utf                 mime.types.default  scgi_params          uwsgi_params.default

fastcgi_params        koi-win                 nginx.conf          scgi_params.default  win-utf

如果这里没有nginx.conf,但有个 nginx.conf.default,我们用它复制个副本nginx.conf (早期版本默认是没有nginx.conf的)

用你熟悉的编辑器打开它,vi nginx.conf

找到如下的部分,大概在35行,

server {

        listen       80 default;

        server_name  localhost;

       

 root /var/www/html/default;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            index  index.html index.htm;

        }

....................

}

如上红色加粗显示部分,做三处修改:

listen 80 后插入“空格default”

在里面加入一行 root /var/www/html/default;

注释掉root html;一行

上面的server{....}是定义的一台虚拟主机,我们刚加入的一行是定义这个虚假主机的web目录。listen 行的default是表示这一个server{...}节点是默认的虚假主机(默认站点)

执行 nginx -t 测试刚才的nginx配置文件是否有语法错误:

[root@fsvps nginx]# nginx -t

nginx: the configuration file /usr/local/conf/nginx/nginx.conf syntax is ok

nginx: configuration file /usr/local/conf/nginx/nginx.conf test is successful

显示没有错误,检测通过。如果不是这样,请返回仔细检查你的配置文件是否哪里写错了,注意行尾要有英文分号。

我们在硬盘上创建这个目录:

[root@fsvps nginx]# mkdir -p /var/www/html/default

写一个html文件index.html 到/var/www/html/default目录里,使用你熟悉的编辑器,随便写什么内容、怎么排版。

然后让nginx重新加载配置文件,看看刚才创作的html页面效果如何。

常见错误FAQ

1) 如果通常访问时看到还是 Welcome to nginx! ,请返回检查,重点在这几处:

请确认/var/www/html/default 目录下有你创作的index.html 文件?

检查该文件权限,other用户是否有读的权限? 如果不懂linux文件权限,请执行 chmod 755 /var/www/html/default/index.html

检查nginx.conf配置文件里,只否只有一个server{...} 节点,并且该节点里是否有 listen       80 default;   一行,注意其中要有 default 。

检查上述server{...}节点里是否有 root /var/www/html/default; 一行,注意路径是拼写是否正确。

检查其中 location / {...} 节点里的 #    root   html;  一行,是否注释掉了。

2) 如果看到的是 404 Not Found 或者“找不到该页面”类似的提示:

检查上述 location / {...} 节点中是否有这一行 index  index.html index.htm;

3) 如果访问时,显示“找不到服务器”、“无法连接到服务器”这样的错误:

运行检查nginx进程在运行,运行ps aux |grep nginx 命令,正常情况有如下三条:

nginx: master process nginx

nginx: worker process

grep nginx

如果只有第三条,请运行nginx 重新启用nginx,如有报错请照说明检查。一般是配置文件的语法错误。

请运行nginx -t 检查配置文件是否有语法错误。

[tips] location / {...} 节点里的 #    root   html;  一行,不注释掉也可以:请把你创造的index.html 放到/var/www/html/default/html目录下。

至此,我们的nginx也可以正常工作了。

查看nginx进程

ps –ef | grep nginx  

4.设置成系统开机服务: 
在 /etc/init.d/  目录下创建 nginx 文件 内容如下:

#!/bin/bash

# nginx Startup script for the Nginx HTTP Server

# this script create it by gcec at 2009.10.22.

# it is v.0.0.1 version.

# if you find any errors on this scripts,please contact gcec cyz.

# and send mail to support at gcec dot cc.

#

# chkconfig: - 85 15

# description: Nginx is a high-performance web and proxy server.

#              It has a lot of features, but it's not for everyone.

# processname: nginx

# pidfile: /var/run/nginx.pid

# config: /usr/local/nginx/conf/nginx.conf

nginxd=/app/nginx/sbin/nginx

nginx_config=/app/nginx/conf/nginx.conf

nginx_pid=/var/run/nginx.pid

RETVAL=0

prog="nginx"

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

[-x $nginxd ]||exit0

# Start nginx daemons functions.

start() {

if[-e $nginx_pid ];then

   echo "nginx already running...."

   exit1

fi

   echo -n $"Starting $prog: "

   daemon $nginxd -c ${nginx_config}

   RETVAL=$?

   echo

   [ $RETVAL =0]&& touch /var/lock/subsys/nginx

   return $RETVAL

}

# Stop nginx daemons functions.

stop() {

        echo -n $"Stopping $prog: "

        killproc $nginxd

        RETVAL=$?

        echo

        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid

}

# reload nginx service functions.

reload() {

    echo -n $"Reloading $prog: "

    #kill -HUP `cat ${nginx_pid}`

    killproc $nginxd -HUP

    RETVAL=$?

    echo

}

# See how we were called.

case "$1" in

start)

        start

        ;;

stop)

        stop

        ;;

reload)

        reload

        ;;

restart)

        stop

        start

        ;;

status)

        status $prog

        RETVAL=$?

        ;;

*)

        echo $"Usage: $prog {start|stop|restart|reload|status|help}"

        exit1

esac

exit $RETVAL

chkco