nginx的功能性学习,所有的功能都是通过nginx.conf配置文件定义的
修改配置参数,就实现了不同的功能
1、使用nginx配置一个站点,进行访问,例如index.html
vim /html/index.html
2、nginx.conf中的配置
【虚拟主机站点功能】
server { # 监听端口 listen 85; # 域名可以有多个用空格隔开 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; #access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main; #网站的路径匹配,如同django的urls匹配,对用户的访问url进行路径分配 #当请求url长这样时: # 192.168.16.142:85/ 就走如下location配置 location / { #deny 192.168.16.0/24; #root参数是定义网页根目录的,可以修改 root /opt/html; #index 定义网页首页名字的 index index.html index.htm; } #当用户请求url是 192.168.16.142:85/pic/monkeyKing.jpg location /pic { #通过alias别名参数,去这个路径下找 alias /opt/pic/; } # 404页面 error_page 404 /404.html; # redirect server error pages to the static page /50x.html }
【日志功能】
找到nginx.conf中的http{}代码块,然后,找到里面的如下配置
#日志格式设定 #$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址; #$remote_user:用来记录客户端用户名称; #$time_local: 用来记录访问时间与时区; #$request: 用来记录请求的url与http协议; #$status: 用来记录请求状态;成功是200, #$body_bytes_sent :记录发送给客户端文件主体内容大小; #$http_referer:用来记录从那个页面链接访问过来的; #$http_user_agent:记录客户浏览器的相关信息; #通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。 反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。 log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';
【禁止访问】
在nginx.conf中,找到如下参数,修改
location / { #拒绝访问,192.168.16.0网段的同学都无法访问 /24是子网掩码的意思 deny 192.168.16.0/24; root html; index index.html index.htm; }
【修改虚拟主机的家目录】
虚拟主机就是nginx.conf中 server{}标签定义的代码
网站的路径匹配,如同django的urls匹配,对用户的访问url进行路径分配
#当请求url长这样时: # 192.168.16.142:85/ 就走如下location配置 location / { #deny 192.168.16.0/24; #root参数是定义网页根目录的,可以修改 root /opt/html; #index 定义网页首页名字的 index index.html index.htm; } #当用户请求url是 192.168.16.142:85/pic/monkeyKing.jpg location /pic { #通过alias别名参数,去这个路径下找 alias /opt/pic/; } location /media { alias /opt/media; }
【虚拟主机功能】
一个nginx下运行多个网址
# 找到nginx安装目录下的conf文件夹,找到nginx.conf # 通过编写多个server标签实现多虚拟主机 # nginx.conf配置如下: # 虚拟主机1: server { # 监听的端口 listen 80; #这里进行域名匹配 server_name www.s20hanju.tv; #这里进行路径匹配 location / { #root定义网页根目录 root /opt/s20/hanju; #index 定义网站首页文件名 index index.html; } } # 虚拟主机2: server { listen 81; server_name www.s20lol.tv; location / { root /opt/s20/lol; index index.html; } } # 改完nginx.conf的配置,需要重启nginx -s reload # 分别准备hanju和lol的数据文件夹 # 然后再去windows中准备hosts文件,进行域名解析 # 文件绝对路径 # C:WindowsSystem32driversetchosts # 内容如下: 192.168.16.142 www.s20hanju.tv 192.168.16.142 www.s20lol.tv # 最后在windows中进行访问,分别访问lol和hanju的网址内容