Nginx WEB Server
戳我Nginxj介绍
Nginx知名的优点就是它的稳定性和低系统资源消耗,高效处理并发量,单台物理服务器可支持30000~50000个并发请求
目前最新Nginx版本1.13.5
1、配置IP地址
(略)
[root@localhost nginx-1.6.0]# rpm -e httpd --nodeps
2、编译安装Nginx源码包下载
[root@localhost ~]# yum -y install pcre-devel zlib-devel 依赖包
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# tar -zxvf nginx-1.6.0.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/nginx-1.6.0/
[root@localhost nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx
--group=nginx --with-http_stub_status_module(状态统计模块)
[root@localhost nginx-1.6.0]# make && make install
[root@localhost ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ 路径优化
[root@localhost ~]# nginx -t 检测语法
[root@localhost ~]# nginx 开启
[root@localhost ~]# netstat -anpt | grep ngin 状态
3、验证:
[root@localhost ~]# firefox http://localhost/
4、nginx服务的控制
[root@localhost ~]# killall -s HUP nginx 重载
[root@localhost ~]# killall -s QUIT nginx 停止
[root@localhost ~]# nginx 启动服务
5、创建nginx服务启动脚本(需要就创建)
[root@localhost ~]# vim /etc/init.d/nginx
添加:
#!/bin/bash
#### nginx server####
# chkconfig: 235 25 20
# description: this is nginx server
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|status}" exit 1
;;
esac exit 0
[root@localhost ~]# chmod +x /etc/init.d/nginx
[root@localhost ~]# service nginx stop
[root@localhost ~]# service nginx start
[root@localhost ~]# netstat -anpt | grep 80
[root@localhost ~]# chkconfig --add nginx
[root@localhost ~]# chkconfig nginx on
6、常用命令
nginx –v 查看版本 nginx –V 查看详细 nginx –t 检查语法配置文件
nginx 只有一个主进程 可以有多个工作进程
7、主配置文件
Nginx主配置文件/usr/local/nginx/conf/nginx.conf
全局配置
user nginx; 运行用户
worker_processes 2; 工作进程数量 根据cup个数去设定,也可以写CPU核心数
#error_log logs/error.log; 错误日志文件的位置
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid; Pid文件的位置
I/O事件配置
events {
#use epoll; 建议使用epoll模型以提高性能 进程数默认1024 一般1000以下 按照自己需求来定
worker_connections 10240; 每进程处理10240个
}
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; FQDN网站名称
charset utf8; 网页的默认字符集
#access_log logs/host.access.log main;
location / { 根目录配置
root html; 网站根目录的位置
index index.html index.htm; 默认首页(索引页)
}
#location /status { 访问位置为status打开统计功能
# stub_status on;
# }
}
}
虚拟机主机应用
基于域名的虚拟web主机 验证的话需要搭建DNS 我在这里用hosts文件记录代替了
[root@localhost ~]# vim /etc/hosts
添加:
192.168.1.1 www.benet.com
192.168.1.1 www.accp.com
[root@localhost ~]# mkdir -p /www/benet
[root@localhost ~]# mkdir -p /www/accp
[root@localhost ~]# echo "hello benet" > /www/benet/index.html
[root@localhost ~]# echo "hello accp" > /www/accp/index.html
Server {
listen 80;
server_name www.benet.com;
charset utf8;
access_log logs/benet.benet.log main;
location / {
root /var/www/benet;
index index.html index.htm;
}
}
Server {
listen 80;
server_name www.accp.com;
charset utf8;
access_log logs/accp.accp.log main;
location / {
root /var/www/accp;
index index.html index.htm;
}
}