Nginx是一个高性能的HTTP服务器和反向代理服务器, 最大的优点是节省资源,适用于处理高并发的请求。
1. Nginx最初是按照反向代理设计的,和Apache不同, nginx关心如何处理url,而不是文件!
2. Apache 是个基于进程处理的web服务器,如果同时有多个请求,必须要启动多个进程来处理。 这样在高负载的情况下,资源的消耗和响应的速度都会有很大的问题。 而Nginx是个基于事件(event)的异步处理模式, 下面是Nginx的一个简单的示意图,有一个Master进程,Maste进程负责系统配置,管理socket,以及管理一个或是多个Worker进程。 而Worker进程接收和处理来自用户(浏览器)的请求。一般来讲,一个worker进程可以同时处理上千个用户的连接请求。每个worker进程采用异步的,基于event的方式来处理用户的请求。对于HTML的静态页面,Nginx会自行来处理,但对于PHP,JSP, Python等动态页面,Nginx是通过FastCGI(或者SCGI,UWSGI)来把动态页面的请求交给相应的处理程序来处理.
3.Nginx支持最多并发理数论值为50000 , Apache支持最多并发数理论值为300
#查看自己系统信息
#lsb_release -a
我的Linux配置信息:
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.2.1511 (Core)
Release: 7.2.1511
Codename: Cor
详细步骤:
1:首先停掉apache,输入命令sudo service httpd stop (以防万一,最好不好提前卸掉)
2.然后停掉Apache开启自启,输入命令chkconfig httpd off (防止以前设置过开机自启)
3:安装nginx,输入命令: yum install nginx (推荐使用yum安装,省时省事)
4:启动nginx ,输入命令sudo nginx (浏览器上输入 http://主机ip, 如果能出现nginx的测试页面 “Test page for the nginx http server on EPEL”就说明nginx已经正常运行了。重启nginx的命令 nginx -s quit )
5:添加php 支持,安装php-fpm,安装命令 yum install php-fpm (PHP-FPM (即PHP-FastCGI Process Manager) 是目前最常用的一个PHP FastCGI的实现。通俗的讲,这个模块在Nginx和PHP之间桥梁,使之可以互相通信和交换。 )
6:nginx设置多站点(我的nginx.conf在此/etc/nginx路径下)
我们假定这个主机上有两个网站,一个是aaa.com, 普通的PHP站点, 一个是bbb.com,为wordpress的博客。 我们就讨论一下在这种情况下,如何设置nginx.首先为站点建立相应的目录
mkdir -p /var/www/aaa/html
mkdir -p /var/www/bbb/html
mkdir -p /var/log/nginx/aaa
mkdir -p /var/log/nginx/bbb
chown -R nginx:adm /var/www/aaa/html
chown -R nginx:adm /var/www/bbb/html
chown -R nginx:adm /var/log/nginx/aaa
chown -R nginx:adm /var/log/nginx/bbb
为两个网站分别设置虚拟目录(virtual directory)
为了保证整个配置更加清晰,我们尽量不修改主配置文件/etc/nginx/nginx.conf , 而是在在/etc/nginx/conf.d目录下建立两个文件,一个是aaa.conf, 一个是bbb.conf,同时要确认 /etc/nginx/nginx.conf此文件中 这句话没有被注释
include /etc/nginx/conf.d/*.conf;
再回到
/var/log/nginx/aaa/
和
/var/log/nginx/bbb/
输入命令创建log文件 touch error.log access.log
===============================分割线=====================================
1、在/etc/init.d/目录下编写脚本,名为nginx
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
killall -9 nginx
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
"nginx" 95L, 2197C 50,1 27%
[root@example ~]# cp nginx /etc/init.d/
[root@example ~]# chmod 755 /etc/init.d/nginx
[root@example ~]# chkconfig --add nginx
3、nginx启动、停止、无间断服务重启
[root@example ~]# service nginx start
[root@example ~]# service nginx stop
[root@example ~]# service nginx reload
本文参考:https://www.androiddev.net/webserver-apache-to-nginx/
和https://segmentfault.com/a/1190000004011180 将Apache转为Nginx
参考:http://www.jb51.net/article/27533.htm 配置Nginx多站点