1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
5、location块:配置请求的路由,以及各种页面的处理情况。
6、缓存控制字段cache-control的配置说明 ( https://www.cnblogs.com/kevingrace/p/10459429.html )
HTTP协议的Cache -Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。
请求时的缓存指令包括: no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。
响应消息中的指令包括: public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。
no-cache: 数据内容不能被缓存, 每次请求都重新访问服务器, 若有max-age, 则缓存期间不访问服务器.
no-store: 不仅不能缓存, 连暂存也不可以(即: 临时文件夹中不能暂存该资源).
private(默认): 只能在浏览器中缓存, 只有在第一次请求的时候才访问服务器, 若有max-age, 则缓存期间不访问服务器.
public: 可以被任何缓存区缓存, 如: 浏览器、服务器、代理服务器等.
max-age: 相对过期时间, 即以秒为单位的缓存时间.
no-cache, private: 打开新窗口时候重新访问服务器, 若设置max-age, 则缓存期间不访问服务器.
设置以分钟为单位的绝对过期时间, 优先级比Cache-Control低, 同时设置Expires和Cache-Control则后者生效. 也就是说要注意一点: Cache-Control的优先级高于Expires
expires起到控制页面缓存的作用,合理配置expires可以减少很多服务器的请求, expires的配置可以在http段中或者server段中或者location段中. 比如控制图片等过期时间为30天
客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
"它代理的是客户端,代客户端发出请求",是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
正向代理的用途:
(1)访问原来无法访问的资源,如Google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。
客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。
反向代理,"它代理的是服务端,代服务端接收请求",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。
反向代理的作用:
(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载
需要使用docker在后台运行一个nginx服务器需要docker容器部署方式。方法如下:1、docker构建mysql环境+docker构建项目自身环境。
2、Vue项目:使用docker启动nginx服务器方式代理部署。
3、项目使用mysql8.0作为数据源,部署时需要使用docker构建mysql环境及项目自身环境。
4、连接出现1251错误时:将项目进行打包:“mumu-0.0.1-SNAPSHOT.jar到此,springboot项目采用docker”方式运行部署结束。
5、使用docker容器方式运行nginx服务器即可。
如何实现Nginx的反向代理?
这句话什么意思?
意思是说当客户机来访问服务器的时候,服务器本身并不出面接待,而是将客户的请求转高给手下的子服务器(小弟)负责接待。
比如:你访问www.baidu.com,其实并不时百度总服务器接待的你,而是百度的代理服务器接待的你,不过他们的服务是一样的,提供同样的页面;
如是搭建Nginx服务才能实现这样的效果呢?
搭建一个最简单,最基础nginx代理服务器,需要一台代理服务,两台子服务器,XX台客户机来作验证;
操作流程如下:
第一步、服务器和客户机配好IP地址,其中Nginx代理服务器需要配置两张网卡,两个IP地址,一个和客户机通信,一个和子服务器通信;
代理服务器与客户机和子服务器都分别配置同网段IP地址;
例如:
代理服务器:192.168.4.5 192.168.2.5
子服务器 :192.168.2.100 192.168.2.200
客户机 :192.168.4.10
这样配置的好处是: 可以负载均衡,保障用户的访问体验,保障上网速度,同时也保障了,即便有一台服务器坏掉了,另一台服务可以接待用户访问;
第二步、代理服务器上安装Nginx服务软件,两台子服务器上安装HTTPD服务并写入相应的网页,然后启动服务;
yum -y install httpd ##安装httpd服务;
echo "罗贵" > /var/www/html/index.html ##写一个简单的网页
./configure --user=nginx --group=nginx --with-http_ssl_module
make && make install ##编译安装Nginx
第三步、修改Nginx的配置文件;
vim /usr /local /nginx /conf /nginx.conf
http { ............... ##在文件中找到http开头的行,并在http下面随意找两行添加下面两行的内容;
upstream luogui { ##luogui是集群名字,可以自由定义,upstream 上游的意思;翻译过来就是在上游建立一个名字为luogui的集群,集群中包含下述IP地址;
server 192.168.2.100:80
server 192.168.2.200:80
}
server {
listen 80
server_name www.luogui.com ##域名,可以自由定义;
location ^/.php$ { ##匹配网页地址的意思,匹配以 / 开头.php结尾的网页文件;
proxy_pass http://luogui ##通过proxy代理服务器将用户的请求转发给luogui集群服务器;(注:优先级最高,系统会优先处理这条命令)
}
}
第四步、测试效果;
firefox http://192.168.4.5 或者 本地测试 curl http://192.168.4.5
结果应该是暂停任何一台子服务器,客户机访问网页都没有问题;
以上.......
(EDN)
祝:开心!
罗贵
2019-04-05于深圳
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)