给文艺女青年讲授HTML语言,第一课应该讲什么?
给文艺女青年讲这个,好吧,在我眼里,学生就是学生,没有类别。
第一节HTML课,重点是如何引起学生学习的兴趣,因为这个脚本本身是很枯燥的,很多人没有耐心学下去。所以让学生对这个感兴趣,觉着学着能有用是最关键的。
如果一上来就是一个个标记的含义与作用,估计下面没几个人认真听了。
所以,第一节HTML课主要以常识,有趣的知识点为主。比如关于网页的构成,什么是脚本语言,要生动有趣,我一般会说网页脚本就是按人的结构来做的,因为网页有头,<head></head>,网页也有身体<body></body>,而且分工作用也类似,头部是控制页面的代码,主体是显示的内容等等。
HTML脚本相对于其它网页语言,PHP,JSP之类还是相对来说非常简单的。
nginx如何配置?
nginx是一款高性能的web和反向代理服务器,这里默认题主已经安装好了nginx下面直接讲解如何配置:
进入到安装目录:
cd /usr/local/nginx/conf
修改前最好备份下:
cp nginx.conf nginx.conf.20181121
修改配置文件
vi nginx.conf
以下是完整的配置截图
解释:
我这里模拟的是两个目录,你可以将你的项目分别放到这2个目录进行访问。
我这里是有域名的,一级和二级域名,将你事先写好的2个项目,或则只是一个简单的index.html放入到上面对应的目录下,/var/www/html2或则/var/www/app
接下来只需要重启即可;
/usr/local/nginx/sbin/nginx -s reload
然后再您的浏览器里面直接输入域名即可访问(http请求默认是80端口,所以这里不用添加端口号就可以直接访问。当然了,你端口号改成8082,然后域名或ip加上:8082也是可以直接访问的。)
我写过一个专门的文章nginx配置,建议题主去看下。
私信@IT讲坛,回复【学习】获取最新技术干货资料。(包含nginx学习视频资料)。
先简单介绍一下nginx,nginx到底是什么?
Nginx ("engine x") 是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。它是由俄罗斯人 Igor Sysoev 开发的,最初被应用在俄罗斯的大型网站 www.rambler.ru 上。后来作者将源代码以类 BSD 许可的形式开源出来供全球使用。
Nginx 的官方介绍见
Nginx整体配置介绍
在了解具体的Nginx配置项之前我们需要对于Nginx配置文件的构成有所概念,一般来说,Nginx配置文件会由如下几个部分构成:
在上述配置中我们可以看出,Nginx配置文件由以下几个部分构成:
- 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
server块:配置虚拟主机的相关参数,一个http中可以有多个server。
location块:配置请求的路由,以及各种页面的处理情况。
Nginx配置文件nginx.conf详解
如图:
为了方便复制,贴出代码,如下:
# 定义 Nginx 运行的用户和用户组,默认由 nobody 账号运行, windows 下面可以注释掉。
user www www;
# 工作进程:数目。根据硬件调整,通常等于CPU数量。
worker_processes 1;
# 全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
# 进程文件,windows 底下可以注释掉
pid /var/run/nginx.pid;
# 一个nginx进程打开的最多文件描述符(句柄)数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,
# 但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
# events块
events {
#每个工作进程的最大连接数量,每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。worker_processes*worker_connections
worker_connections 1024;
}
# 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方式传输文件,默认为off,可以在http块,server块,location块。
sendfile on;
#tcp_nopush on;
# 连接超时时间,默认为75s,可以在http,server,location块。
#keepalive_timeout 0;
keepalive_timeout 65;
# gzip压缩相关配置
#gzip on;
gzip on; # 开启gzip压缩传输
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 32k; # 压缩缓存区
gzip_http_version 1.1; # 压缩版本
gzip_comp_level 2; # 压缩级别
gzip_types text/plain application/x-javascript text/css application/xml; # 压缩文件类型
gzip_vary on;
gzip_disable "MSIE [1-6].";
# 保存服务器名字的hash表的大小
server_names_hash_bucket_size 128;
# 设定通过nginx上传文件的大小
client_max_body_size 100m;
# 客户端请求头部的缓冲区大小。
client_header_buffer_size 256k;
# 客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取。
large_client_header_buffers 4 256k;
# 代理头部信息设置,将代理服务器收到的用户的信息传到真实服务器上
proxy_set_header Host $host:$server_port;
proxy_set_header X-real-ip $remote_addr;
#proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 虚拟主机
server {
# 监听端口
listen 8088;
# 监听地址
server_name t1.sgl.com;
# 请求地址location
location / {
# 请求转向到代理服务器
proxy_pass http://127.0.0.1:8080;
}
location /admin/user_toIndexPage.do {
# 超时时间
proxy_read_timeout 300;
proxy_pass http://127.0.0.1:8080;
}
location /wechat/ {
proxy_pass http://127.0.0.1:8081;
}
location /new/ {
proxy_pass http://127.0.0.1:8081;
}
}
}
常用的几个内置变量
- $remote_addr 与 $http_x_forwarded_for 用以记录客户端的ip地址;
- $remote_user :用来记录客户端用户名称;
- $time_local : 用来记录访问时间与时区;
- $request : 用来记录请求的url与http协议;
- $status : 用来记录请求状态;成功是200;
- $body_bytes_s ent :记录发送给客户端文件主体内容大小;
- $http_referer :用来记录从那个页面链接访问过来的;
- $http_user_agent :记录客户端浏览器的相关信息;
关于nginx重新加载配置、平滑升级参考我的博客
nginx启动、重启、重新加载配置文件和平滑升级: (
)
nginx的location解析过程介绍: ()
nginx的gzip压缩功能参数介绍: ()
希望以上内容能够帮助你理解nginx配置。
Nginx概述
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
常用功能
- 反向代理,代理对象为服务端做代理,使客户端不需要感知服务端的存在,只需要访问代理服务器便可获得想要的结果。实现限流、负载均衡、动静分离等。
- 负载均衡(Load Balance),是分布式系统中一个非常重要的概念。当访问的服务具有多个实例节点时,需要根据某种“均衡”的策略决定请求发往哪个节点,这个过程就是所谓的负载均衡。多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。
- web缓存,Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理
配置示例
修改Nginx目录下nginx.conf配置文件,如下所示:
upstream server {
ip_hash;
server 192.168.200.129:80; #第一台负载的ip及端口
server 192.168.200.131:80; #第二台负载的ip及端口
}
server {
listen 80;
server_name localhost Nginx_ip;
location / {
proxy_pass http://server;
proxy_redirect default;
}
}
参数说明
upstream
upstream模块主要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器。
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com fail_timeout=5s slow_start=30s;
server backend3.example.com resolve;
server backend4.example.com service=http resolve;
server backup1.example.com backup;
server backup2.example.com backup;
}
server
server模块配置是http模块中的一个子模块,用来定义一个虚拟访问主机。
server {
listen 80;
server_name localhost nginx_ip;
root /nginx/www;
index index.php index.html index.html;
charset utf-8;
access_log logs/access.log;
error_log logs/error.log;
}
location
location模块配置在路由访问信息配置中关联到反向代理、负载均衡等等各项功能。
语法规则: location [=|~|~*|^~] /uri/ { … }
多个location优先级:首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
location / {
root /nginx/www;
index index.php index.html index.htm;
}
location ^~ /test {
proxy_pass http://backend;
proxy_redirect off;
proxy_set_header Host $host;
}
location /:表示匹配访问根目录。
root:用于指定访问根目录时,访问虚拟主机的web目录。
index:在不指定访问具体资源时,默认展示的资源文件列表。
如果解决了你的疑惑,请点点关注和评论,谢谢支持。
正春华枝俏,待秋实果茂,与君共勉。