Nginx是一款高性能的Web服务器和反向代理服务器,它可以处理高并发的请求,同时还支持负载均衡、动态HTTP缓存、SSL/TLS加密等功能。可以支持高达 50,000 个并发连接数。
Nginx的特点:
1. 高性能:Nginx采用了事件驱动的异步非阻塞处理方式,可以处理大量的并发请求。
2. 轻量级:Nginx的代码量非常小,而且它的内存占用也很少,可以在资源有限的环境下运行。
3. 可扩展性:Nginx支持模块化的架构,可以通过添加模块来扩展其功能。
4. 反向代理:Nginx可以作为反向代理服务器,将请求转发到后端的应用服务器上。
5. 负载均衡:Nginx支持负载均衡,可以将请求分发到多个后端服务器上,提高系统的可用性和性能。
6. 静态文件服务:Nginx可以作为静态文件服务器,可以快速地响应静态文件的请求。
7. 动态HTTP缓存:Nginx可以缓存动态生成的HTTP响应,减少后端服务器的负载。
8. SSL/TLS加密:Nginx支持SSL/TLS加密,可以保护数据的安全性。
安装流程:
1.首先停止原有机器上的Web服务或者改掉端口防止端口冲突。
2.创建普通用户来运行Nginx (useradd -M -s /sbin/nologin nginx)
3.官网获取nginx源码包并解压。
4.解压后切换到解压目录里,找到configure这个可执行文件,使用它来配置nginx编译环境。该命令定义了系统各方面功能,包括允许nginx使用的连接处理方式。 其执行结果是生成一个Makefile
文件。
./configure --help
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module (支持参数参考官方文档)
--prefix=/usr/local/nginx #指定安装路径
--with-http_stub_status_module #启用service status页,默认不启用
--with-http_ssl_module #启用ssl模块,以支持https请求 它需要OpenSSL库才能编译和运行。
--sbin-path=/usr/sbin/ #指定二进制命令的路径
make && make install
安装成功。
中间遇到报错安装提示中所需要软件或库即可。
接下来就是启动nginx:
安装完成后会自动在安装路径里生存nginx目录,切换到nginx目录中,在sbin目录下找到nginx
./nginx就可以执行启动nginx。为了方便后续使用可以把它配置到系统环境变量里,这样在任一位置即可使用了。
nginx -h就可以看到下面帮助信息了:
-v 查看版本号
-V 查看版本号及编译选项
-s 给主进程发送信号.可接 stop | quit | reopen | reload
-t 测试配置是否正确
-c 指定配置文件,默认为 conf/nginx.conf
-s reload 重启工作进程
nginx的配置文件为nginx.conf,一般在修改任何配置文件时都会进行备份,但nginx默认以及给我们做好备份了,为同目录下nginx.conf.default文件。
默认发布目录为nginx/html目录。
注意:
yum安装的nginx(epel源)
主目录:/etc/nginx
主配置文件:/etc/nginx/nginx.conf
文档目录:/usr/share/nginx/htmlnginash
nginx脚本:
#!/bin/bash
#
#确定用户传入的参数必须是一个
if [ "$#" -ne 1 ]
then
echo "Usage: $0 {start|stop|status|restart|force-reload}"
exit 1;
fi
#start nginx
if [ "$1" = "start" ]
then
/usr/local/nginx/sbin/nginx
netstat -nalp | grep nginx > /etc/null
if [ "$?" -eq 0 ]
then
echo "start ok!!!"
exit 0
else
echo "start no!!!"
exit 1
fi
elif [ "$1" = "stop" ]
then
/usr/local/nginx/sbin/nginx -s stop
netstat -nalp | grep nginx > /etc/null
if [ "$?" -eq 0 ]
then
echo "stop ok!!!"
exit 0
else
echo "stop no!!!"
exit 1
fi
elif [ "$1" = "reopen" ]
then
/usr/local/nginx/sbin/nginx -s reopen
netstat -nalp | grep nginx > /etc/null
if [ "$?" -eq 0 ]
then
echo "reopen ok!!!"
exit 0
else
echo "reopen no!!!"
exit 1
fi
elif [ "$1" = "reload" ]
then
/usr/local/nginx/sbin/nginx -s reload
netstat -nalp | grep nginx > /etc/null
if [ "$1" -eq 0 ]
then
echo "reload ok!!!"
exit 0
else
echo "reload no!!!"
exit 1
fi
elif [ "$1" = "status" ]
then
netstat -nalp | grep nginx > /etc/null
if [ "$?" -eq 0 ]
then
echo "start!!!"
exit 0
else
echo "stop!!!"
exit 0
fi
else
echo "Usage: $0 {start|stop|status|restart|force-reload}"
exit 1;
fi