day02:初识nginx
Nginx:
开源、高性能、可靠、轻量级的http web server、代理服务器
开源:支持获取源代码,也就是说二次开发
高性能:支持海量并发
轻量级:占用资源少
可靠:服务稳定
Nginx应用场景:
1.web server:本身就是提供http的一款软件
2.代理服务:反向代理(外访内)、负载均衡
3.安全服务:访问控制(基于ip、身份认证)
4.架构:lnmp、lnmt
Nginx安装:
官方源,nginx官方编译好的、封装成的rpm包、提供rpm包;推荐使用;我使用就是官方的yum源,直接yum安装的
vim /etc/yum.repos.d/nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
yum -y install nginx-1.14.0 ##坐等安装完毕,此处安装的是nginx 1.14.0的版本,软板包750K左右,看网速
Nginx主配置文件
vim /etc/nginx/nginx.conf ##主配置文件 user nginx; ##nginx程序的运行用户 worker_processes 1; ##nginx的work进程个数(work进程接收用户请求,处理请求) error_log /var/log/nginx/error.log warn; ##nginx的默认错误日志 warn级别 pid /var/run/nginx.pid; ##nginx运行时,pid文件 events { worker_connections 1024; ##一个work进程的最大连接数 } http { include /etc/nginx/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"'; ##main日志级别德日志格式 access_log /var/log/nginx/access.log main; ##nginx默认访问日志 main级别 sendfile on; #tcp_nopush on; keepalive_timeout 65; 长连接的超时时间 #gzip on; include /etc/nginx/conf.d/*.conf; ##包含/etc/nginx/conf.d/目录下以.conf结尾的配置文件(我称之为nginx配置文件目录) }
nginx配置文件目录,下面有个default.conf文件,一般不用,可以直接删除,自己定义。最好重命名一下,前缀不重要,重要的是不要.conf结尾,不让其生效
mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.bac
nginx配置文件格式
http{ }:允许定义server层、upstream层、stream层
server{ }:允许定义location层面,location用于定义网站的访问路径
①修改运行程序的用户(很重要,因为nginx、php、nfs、rsync以后都要结合起来,所以一定要统一程序的运行用户)
groupadd -g 666 www useradd -u 666 -g 666 -s /sbin/nologin -M www vim /etc/nginx/nginx.conf user www; ##修改默认的nginx用户为www用户
②书写第一个配置文件,定义一个基于域名的虚拟主机(一台web server运行多个web站点,基于域名,使用同一个ip、80端口)
vim /etc/nginx/conf.d/test.conf server { listen 80; ##监听端口 server_name test.rm.com; ##域名(三级域名、主机名);唯一性、server_name重名之后会有bug root /web/test; ##网站代码存放目录 index index.html; ##索引页 index.html }
mkdir -p /web/test ##创建网站目录
echo "<html><h1>rhel4-test</h1></html>" > /web/test/index.html ##准备首页
chown www.www -R /web/test ##修改属主、属组为nginx的运行用户www
③nginx的常用命令
nginx -t ##测试nginx所有配置文件的准确性
nginx:开启nginx
nginx -s stop:关闭nginx
nginx -s reload:重载配置文件
当然也可以使用systemctl的方法开启nginx、关闭nginx、重启nginx
④开启nginx服务
nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx
⑤本地做好hosts文件,本地浏览器直接访问
⑥查看访问日志,下一篇讲解日志
tail /var/log/nginx/access.log 192.168.31.1 - - [13/Dec/2019:10:32:52 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0" "-""test.rm.com