Nginx官网:nginx.org
系统环境:CengOS7.9
Nginx版本:1.22.1 稳定版
本次实验用yum安装nginx,先配yum源:
nginx官网yum源配置链接:https://nginx.org/en/linux_packages.html#RHEL
[root@web01 ~]# cat /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[root@kodexp ~]# yum -y install nginx
安装后执行检查
[root@web01 ~]# rpm -qa nginx
nginx-1.22.1-1.el7.ngx.x86_64
[root@web01 ~]# rpm -ql nginx
这里把输出的详细文件略过了,太多了
需要注意的是,不同的安装方法,其目录结构、文件会有所不同。
简单介绍一下目录结构
nginx各种配的目录:/etc/nginx/
主配置文件:/etc/nginx/nginx.conf
自配置文件(网站):/etc/nginx/conf.d/
默认的自配置文件:/etc/nginx/conf.d/default.conf
ngx命令:/usr/sbin/nginx
ngx默认的站点目录,网站的根目录:/usr/share/nginx/html/
nginx日志:访问日志,错误日志 ,跳转日志:/var/log/nginx/
日志切割(防止文件过大):/etc/logrotate.d/nginx
媒体类型:/etc/nginx/mime.types
ngx+php:/etc/nginx/fastcgi_params
ngx+python:/etc/nginx/uwsgi_params
systemctl配置文件:/usr/lib/systemd/system/nginx.service
缓存目录:/var/cache/nginx/
日常启动与管理
[root@web01 ~]# systemctl enable nginxsystemd/system/nginx.service.
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl status nginx
[root@web01 ~]# ss -lntup | grep 80
[root@web01 ~]# ps -ef | grep nginx
检查无误,都正常输出,则可以在浏览器中输入这个IP,可以看到nginx的欢迎页面,就代表正常了。
看一下主配置文件:/etc/nginx/nginx.conf
[root@web01 ~]# cat /etc/nginx/nginx.conf
核心core配置部分:指定nginx基本功能:用户、进程数量、pid文件、日志
user nginx; # 指定nginx所属用户(虚拟用户)
worker_processes auto; # 进程数量,处理用户请求的进程,当前数量是自动的
error_log /var/log/nginx/error.log notice; # nginx错误日志及位置
pid /var/run/nginx.pid; # pid文件
# events区域,每个进程处理连接数量io模型 use epool
events {
worker_connections 1024;
}
# http区域,7层功能区域,网站配置,各种配置等等,基本都在这里
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"';
# 这里是指定nginx访问日志格式,格式叫做main
access_log /var/log/nginx/access.log main; # 使用之指定的格式,记录访问日志
sendfile on; # 提高nginx性能
#tcp_nopush on;
keepalive_timeout 65; # 提高nginx性能
#gzip on;
include /etc/nginx/conf.d/*.conf; # 文件包含或引用功能,用于在nginx配置文件中调取其他文件,引用nginx子配置文件
}
看下默认子配置文件
[root@web01 ~]# egrep -v '^$|#' /etc/nginx/conf.d/default.conf
server {
listen 80; # 监听的端口号
server_name localhost; # 网站域名
location / { # 用于匹配用户请求的uri, location / 表示默认
root /usr/share/nginx/html; # 用于指定站点目录
index index.html index.htm; # 指定首页文件,只输入域名的时候默认展示的页面
}
error_page 500 502 503 504 /50x.html; # 这里是配置,指定出现500/502/503/504错误
location = /50x.html {。 #的时候显示/50X.html文件
root /usr/share/nginx/html;
}
}
实验:部署一个网站
域名:cxk.sysjyh.cn
站点目录:/app/code/cxk
步骤:
1、创建代码存放目录
2、上传并解压代码
3、配置子配置文件
4、语法检查并重启服务
5、在客户端做域名解析
6、访问测试
[root@web01 ~]# mkdir -p /app/code/mgae/
[root@web01 ~]# unzip cxk.zip -d /app/code/cxk
[root@web01 ~]# cat /etc/nginx/conf.d/cxk.conf
server {
listen 80;
server_name cxk.sysjyh.cn;
root /app/code/cxk;
location / {
index index.html;
}
}
[root@web01 ~]# nginx -t # 做语法检查
[root@web01 ~]# systemctl reload nginx
mclinddeMacBook-Pro:~ root# cat /etc/hosts
...
192.168.1.17 cxk.sysjyh.cn
# 浏览器访问此域名,即可看到成功页面
各个系统修改解析的方式
#win: C:\Windows\System32\drivers\etc\hosts
#windows下面win键+r 输入drivers 访问etc下的hosts
#linux: /etc/hosts
#mac:/etc/hosts
这个自配置文件,主要就是里边的server内容,每个server就单独对应一个字节点,里边的监听端口和域名,可以相互不同,这样就可以在一台宿主机上部署多个节点子网站服务,形成了基于不同域名或者不同端口的虚拟主机。这些server配置,可以写在一个conf配置文件,也可以每个节点单独配置,建议不要写在一个文件,容易混乱。
需要注意的是,除了以上配置,还可以在server里添加限制内网才能访问,看如下配置
server {
listen 172.16.1.7:8888;
server_name mc.test.cn;
root /app/code/mi;
location / {
index index.html;
}
}
里边监听的是172.16.1.7:8888地址的8888端口,这个就代表只能连接172.16.1.7的这些主机才能访问。
测试:
[root@web01 ~]# curl -H Host:mc.test.cn http:Վˌ172.16.1.7:8888/ # 这里-H就是指定访问的域名
小结:
1、准备子配置文件
2、准备目录、代码、修改权限
3、访问测试(记得注意域名解析问题)