Nginx简介:
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