什么是Nginx
nginx是一个高性能的HTTP Server和代理软件,它具有高并发、且占用资源少,同时也是一个比较优秀的代理和负载均衡、缓存服务器,它可以运行于多种平台
Nginx的特点
Web服务器:
高性能的WEB服务器软件,与Apache相比,它支持更多的并发连接且占用服务器资源少,效率高
反向代理或负载均衡服务器:
作为负载均衡服务器,它可以作为HTTP SERVER或DB等服务的代理服务器,类似Haproxy代理软件的功能,Nginx的代理功能相对简单,效率也不及Haproxy,同时它也是一个优秀的邮件代理服务软件
缓存服务器:
Nginx还可以作缓存服务器,类似于专业的缓存软件功能
Nginx的优点
作为WEB服务器而言,Nginx处理静态文件的效率比较高,能支持1-2万甚至更多的并发连接(高并发)
作为代理服务器而言,Nginx可以实现无缓存的反向代理加速来提高WEB站点的运行速度,提高用户访问的体验
作为负载均衡服务器而言,支持的应用较多,同时也支持容错功能,自带算法进行负载均衡调度
性能方面而言,采用内核poll模型,支持更多的并发连接,官方显示最大可支持50000个并发连接的请求响应,但占用资源很少且非常稳定
本次的实验环境:CentOS7
环境准备
#设置或停止防火墙:
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
#关闭selinux:
临时关闭:
[root@localhost ~]# setenforce 0
永久关闭(修改配置文件):
[root@localhost ~]# vim /etc/selinux/config
改成SELINUX=disabled
首先要添加第三方源,自带源rpm软件太少,安装第三方源,减少下载软件的麻烦
yum install epel-release
然后安装nginx
yum -y install nginx
关闭防火墙
systemctl stop firewalld
关闭selinux
vim /etc/selinux/config
将第六行更改为SELINUX=disabled
运行nginx
systemctl start nginx
出现以上界面表示nginx安装成功
查看nginx的版本
nginx -V
如果想在系统启动前启用Nginx,可以输入以下命令让Nginx开机自启
systemctl enable nginx
以下是Nginx的默认路径:
Nginx配置路径:/etc/nginx/
PID目录:/var/run/nginx.pid
错误日志:/var/log/nginx/error.log
访问日志:/var/log/nginx/access.log
默认站点目录:/usr/share/nginx/html
nginx的配置文件比较简单,但功能相当强大,可以自由灵活的进行相关配置
Nginx服务主配置文件介绍
[root@serverA conf]# egrep -v "#|^$" nginx.conf
worker_processes 1; #工作进程数
events { #事件
worker_connections 1024; #并发数,单位时间内最大连接数
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server { #虚拟主机标签
listen 80; #监听的端口号
server_name localhost; #服务器主机名
location / {
root html; #默认站点目录
index index.html index.htm; #默认首页文件
}
error_page 500 502 503 504 /50x.html; #错误页面文件
location = /50x.html {
root html;
}
}
}
以上介绍了nginx服务的安装与配置文件,接下来介绍下它的另一种实用配置——“虚拟主机”,每个虚拟主机可以是一个独立的网站,可以具有独立的域名,同一台服务器上的不同的虚拟主机之间是独立的,用户访问不同虚拟主机如同访问不同的服务器一样,因此它不需要为一个单独的WEB站点提供单独一个nginx服务器和一个单独的nginx进程
跟apache服务一样,nginx也有三种不同的虚拟主机,基于域名的虚拟主机、基于IP的虚拟主机与基于端口的虚拟主机,至于其中的区别,请参考前面的apache的相关介绍
首先创建站点目录
mkdir -p /data/web_data/
随便写点内容来便于后面的测试
[root@serverA ~]# echo "Welcome to the www site" > /data/web_data/www.html
[root@serverA ~]# echo "Welcome to the blog site" > /data/web_data/blog.html
配置nginx 虚拟主机有两种方式,一种可以像前面apache服务这种,单独配置一个虚拟主机的配置文件,另一种也可以在主配置文件 nginx.conf中添加server标签,接下来介绍的是第一种方式,通过在配置文件里添加包含关系,单独配置虚拟主机的配置文件目录与配置文件,这样服务多了,也容易维护。
因为主配置文件/etc/nginx/nginx.conf中有include /etc/nginx/conf.d/*.conf; 所以为了方便我们在/etc/nginx/conf.d/下新建虚拟主机配置文件
cd /etc/nginx/conf.d/
配置虚拟主机的配置文件
vim vhosts.conf
server {
listen 80;
server_name www.whaoub.com;
location / {
root /data/web_data;
index www.html;
}
}
server {
listen 80;
server_name blog.whaoub.com;
location / {
root /data/web_data;
index blog.html;
}
}
对配置文件的语法进行测试
nginx -t
重启服务
systemctl restart nginx
打开浏览器访问相应的域名
若要在本地的浏览器中用域名访问的话,要在物理机的hosts文件中写入IP与域名的对应关系
至此nginx的虚拟主机已配置完成
Nginx中文文档:http://www.nginx.cn/doc/index.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论