Nginx简介:
Nginx是一款专为性能优化而开发的, http 和反向代理服务器,其最知名的优点就是它的稳定性和低系统资源消耗,由俄罗斯人Igor Sysoev(伊戈尔·赛索耶夫)为俄罗斯网站Rambler.ru开发的,在Rambler.ru网站平稳的运行了四年,而且俄俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。
优点:内存消耗少:处理静态文件,比apache 占用更少的内存及资源
缺点:动态处理差:nginx处理静态文件较好,耗费内存少,但是动态没有apache做的好
一般来说前端用nginx作为反向代理抗住压力,后端使用apache处理动态请求。
安装及运行控制
Nginx官网http://nginx.org/下载
网盘https://pan.baidu.com/s/1Ei3cVU-hG_zKORXzi3Z7yQ下载
1.编译安装
1)安装前提软件
[root@mysql ~]# yum -y install pcre-devel zlib-devel
2)创建运行用户和组
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
3)编译安装
[root@mysql ~]# cd /root/Desktop/
[root@mysql Desktop]# tar zxf nginx-1.12.0.tar.gz -C /usr/src/
[root@mysql Desktop]# cd /usr/src/
[root@mysql src]# cd nginx-1.12.0/
[root@mysql nginx-1.12.0]# ./configure --prefix=/usr/local/nginx \
--user=nginx \ //指定用户
--group=nginx \ //指定组
--with-http_stub_status_module \ //模块以支持状态统计
&& make && make install
4)链接优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
2.运行控制
[root@mysql ~]# nginx //启动服务
[root@mysql ~]# netstat -anput | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6400/nginx: master
[root@mysql ~]# yum -y install psmisc //安装killall命令
[root@mysql ~]#killall -s QUIT nginx //关闭Nginx
[root@mysql ~]# killall -s HUP nginx //重启Nginx
[root@mysql ~]# nginx -t // 检测配置文件
配置文件nginx.conf
主配置文件位于/usr/local/nginx/conf/nginx.conf
1.全局配置
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
#user nginx;
//运行用户
worker_processes 1; //工作进程数量
#error_log logs/error.log; //错误日志文件的位置
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid; //PID文件存放位置
2.I/O事件配置
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
evets {
use epoll; //使用epoll模型
worker_connections 1024 //每个进程处理1024个连接
}
3.http配置
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main; //访问日志位置
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65; //连接保持超时
#gzip on;
server { //web服务监听配置
listen 80; //监听地址及端口
server_name localhost; //网站名称
#charset koi8-r; //默认字符集
#access_log logs/host.access.log main;
location / { //根目录配置
root html; //根目录位置
index index.html index.htm; //默认首页(索引页)
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; //错误反馈信息
location = /50x.html { //错误页面配置
root html;
}
访问状态及虚拟主机
1.访问统计
Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况,在编译安装Nginx时添加--with-http_stub_status_module来启用此模块。
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /status { //访问位置为status
stub_status on; //打开状态统计功能
access_log off; //关闭此位置的日志记录
}
测试
Active connections,表示当前网页连接数。
server accepts handled requests,表示已处理的连接信息。
224表示,已处理的请求数。
2.Nginx虚拟主机
基于域名的虚拟Web主机通过域名区分不同的Web站点。使用Nginx搭建虚拟主机服务器时,每个虚拟Web站点拥有独立的“server{}”配置段,各自的监听IP地址,端口号等可以单独指定。
1)配置dns服务,使用两个域名解析同一个ip
[root@mysql ~]# yum -y install bind bind-chroot
[root@mysql etc]# mv named.conf named.conf.bak //备份
[root@mysql etc]# vim named.conf
options {
directory "/var/named";
};
zone "benet.com" {
type master;
file "benet.com.zone";
};
zone "accp.com" {
type master;
file "accp.com.zone";
};
[root@mysql etc]# cd /var/named/
[root@mysql named]# cp -p named.localhost benet.com.zone
[root@mysql named]# vim benet.com.zone //添加benet的a记录
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www A 192.168.1.1
[root@mysql named]# cp -p benet.com.zone accp.com.zone
//因为是使用不同域名相同ip所以复制一下就行
[root@mysql named]# cat accp.com.zone //验证是否为相同ip
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www A 192.168.1.1
[root@mysql named]# systemctl start named //开启服务
[root@mysql named]# netstat -anput | grep named
tcp 0 0 192.168.1.1:53 0.0.0.0:* LISTEN 45089/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 45089/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 45089/named
tcp6 0 0 ::1:953 :::* LISTEN 45089/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 45089/named
udp 0 0 192.168.1.1:53 0.0.0.0:* 45089/named
udp 0 0 127.0.0.1:53
2)设置测试文件首页
[root@mysql ~]# mkdir -p /wwwroot/benet
[root@mysql ~]# mkdir -p /wwwroot/accp
[root@mysql ~]# echo "benet.com" >/wwwroot/benet/index.html
[root@mysql ~]# echo "accp.com" >/wwwroot/accp/index.html
3)调整nginx.conf配置文件
[root@mysql ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.benet.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /wwwroot/benet; //benet的根目录
index index.html index.htm;
}
}
server {
listen 80;
server_name www.accp.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /wwwroot/accp; //accp的根目录
index index.html index.htm;
}
}
[root@mysql ~]# nginx -t
[root@mysql ~]# killall -s HUP nginx //重启
测试
注意配置虚拟主机时的‘’{}‘’号是否相对。
来源:CSDN
作者:秦子腾
链接:https://blog.csdn.net/weixin_45310323/article/details/103542529