您现在的位置是:主页 > news > 网站建设教程软件下载/阿拉营销网站

网站建设教程软件下载/阿拉营销网站

admin2025/5/25 14:05:14news

简介网站建设教程软件下载,阿拉营销网站,湘西州疫情防控指挥部,东阳app开发上一节我们介绍了nginx.conf的配置文件的http模块内容,由于内容较多,为了达到短小精悍的宗旨我们单独分了一章来讲解,本节我们进行最后最后剩余模块的详细讲解。。那在讲解之前我们在来回顾下那张美图。 代码段粘贴过来(由于前面整…

网站建设教程软件下载,阿拉营销网站,湘西州疫情防控指挥部,东阳app开发上一节我们介绍了nginx.conf的配置文件的http模块内容,由于内容较多,为了达到短小精悍的宗旨我们单独分了一章来讲解,本节我们进行最后最后剩余模块的详细讲解。。那在讲解之前我们在来回顾下那张美图。 代码段粘贴过来(由于前面整…

上一节我们介绍了nginx.conf的配置文件的http模块内容,由于内容较多,为了达到短小精悍的宗旨我们单独分了一章来讲解,本节我们进行最后最后剩余模块的详细讲解。。那在讲解之前我们在来回顾下那张美图。

在这里插入图片描述
代码段粘贴过来(由于前面整体的配置文件中么有upstream的配置内容,我重新复制了一个过来)。

   upstream  app {ip_hash;server 192.168.1.1:8080;server 192.168.1.2:8080;server 192.168.1.3:8080;server 192.168.1.4:8080;}server {listen       81;server_name  skyfans.app.com;charset utf-8;location / {proxy_pass http://app;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}include ./conf.d/*.conf;# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}

1.upstream

定义上游服务器集群,在反向代理中proxy_pass使用,用于负载均衡的配置。

upstream  app {ip_hash;server 192.168.1.1:8080;server 192.168.1.2:8080;server 192.168.1.3:8080;server 192.168.1.4:8080;include ./conf.d/*.conf;}

1.1 upstream app

app为用户自定义的名称(定义的内容建议和应用对应,方便区分),注意记录定义的名字,因为在后面的server中需要配合调用。

1.2 ip_hash;

负载均衡配置算法,主要算法包括轮训、ip_hash、weight、第三方。这里不做详细介绍,想详细了解可飞机去:nginx的负载均衡算法

1.3 server 192.168.1.1:8080;server 192.168.1.2:8080;

所代理的IP地址及端口内容。

1.4 include ./conf.d/*.conf;

引入加载./conf.d/下的所有conf结尾的配置文件。

2.server

server {listen       81;server_name  skyfans.app.com;charset utf-8;location  /{……}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;
}

2.1 listen 81;

代理后监听的端口。按如上配置举例说明,原存放服务的内容监听端口为8080,通过server块配置后,端口被代理为了81,我们在访问服务的时候,端口输入81即可成功访问到应用。

2.2 server_name skyfans.app.com;

server_name用于与在浏览器或程序方式时,进行http请求header头部的Host匹配,如果配置为指定的URL,则访问时完全配置UR内容。
在这里插入图片描述
注意:server_name后面可跟多个主机名,也可使用通匹符配置,如*.app.com。

2.3 charset utf-8;

字符集配置。

2.4 error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

location匹配模块内容,若果上面的location匹配不到对应的地址或获取的状态码为500 502 503 504时,则反回ningx默认设置的50x.html

3.location

 location / {proxy_pass http://app;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}

3.1 location /

location作用:基于一个指令设置URI。location是根据Uri来进行不同的定位,location可以把平台的不同部分,定位到不同的URL上。一般在配置时,不同的模块会分多个location进行配置,方便区分及修改配置。

3.1.1 location [ = | ~ | ~* | ^~ ] uri { … }

 = 精确匹配,如果找到匹配=号的内容,立即停止搜索,并立即处理请求(优先级最高)
 ~ 区分大小写
 ~* 不区分大小写
 ^~ 只匹配字符串,不匹配正则表达式
 @ 指定一个命名的location,一般用于内部重定义请求,location @name {…}
当路径为/时,通常会返回首页,也就是location中配置的URL地址页。

3.1.2 举个官网的例子:

location = / {[ configuration A ]
}
location / {[ configuration B ]
}
location /documents/ {[ configuration C ]
}
location ^~ /images/ {[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {[ configuration E ]
}

3.1.3 最终访问测试的结果如下:

 / 匹配A(完全匹配)。
 /index.html 匹配B(配置的URL地址)
 /documents/document.html 匹配C(匹配documents下的内容)
 /images/1.gif 匹配D
 /documents/1.jpg 匹配的是E。

总结,在实际配置中,请根据你需要使用的类型进行设置匹配内容!!

3.2. proxy_pass http://app;

proxy_pass 指令属于ngx_http_proxy_module 模块,此模块可以将请求转发到另一台服务器。上面说过,我们在配置upstream模块时,定义了一个app的负载均衡的内容,在如上定义的内容,我们需要在location模块中调用,实现求情转发的工作。

3.3 真实地址获取段

proxy_set_header Host host:host:host:server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

nginx将记录用户真实的ip地址转发给后端服务器配置。
这里的host和host和hostremote_addr都是nginx的导出变量,可以再配置文件中直接使用。这里使用用host代替host代替hosthttp_host变量,从而避免http请求中丢失Host头部的情况下Host不被重写的失误。
在这里插入图片描述
注意:这段配置内容也可以有效的防止伪Ip攻击,通过如上配置,可以记录真实的访问IP地址。

4.https协议代理配置内容

依赖模块:http_ssl_module。默认安装nginx不会自带,编译的时候需要加上with -http_ssl_module内容。

  #HTTPS server#server {listen       443 ssl;server_name  localhost;ssl_certificate      cert.pem;ssl_certificate_key  cert.key;ssl_session_cache    shared:SSL:1m;ssl_session_timeout  5m;server_tokens off;ssl_ciphers  HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers  on;location / {root   html;index  index.html index.htm;}

默认在nginx安装完毕后,配置文件中是存在https协议配置的内,只不过在不使用的时候,直接是被注释掉的内容。这里我们简单的针对于内容进行讲解。配置https内容时,需要用到第三方可信任的 SSL 证书,需要提前进行准备。

4.1 关于 SSL 证书

SSL 证书主要有两个功能:加密和身份证明,通常需要购买,也有免费的,通过第三方 SSL 证书机构颁发。详情了解请自行百度。

4.2 listen 443 ssl;

ssl配置的端口,默认443,不建议修改。

4.3 ssl_certificate cert.pem; ssl_certificate_key cert.key;

证书文件(pem)和私钥文件(key),注意不同的机构颁发的文件可能不同,证书文件还有.crt结尾的。要注意,这里是ssl key文件存放的相对路径,也可以配置为绝对路径,根据自己的文件名称和路径修改即可。

4.4 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;

缓存时间和超时时间。配置用于SSL会话的缓存时间为1分钟。开启SSL会话功能后,该指令定义使用会话的期限。

4.5 server_tokens off;

禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击。强烈建议配置此项!!!

4.6 ssl_ciphers HIGH:!aNULL:!MD5;

openssl支持的加密套件,这里采用算法套件MD5算法。

4.7 ssl_prefer_server_ciphers on;

指定是否服务器密码优先于客户端密码。

这里https配置内容我们简单讲解下,后续有时间进行一章单独的详细讲解。
在这里插入图片描述
花了4章的时间,磨磨唧唧的终于讲完了。详细的内容就详细看每个章节的内容吧,要是想直接用大脑记录nginx.conf的配置模块,我觉得直接看图即可了。这图,多美,这图,多帅,这图,一下省略1W字赞美咱的图。
在这里插入图片描述
写在最后,文章中相当于介绍了所有的模块内容,在实际工作配置中,不建议所有的内容全部都配置在nginx.conf文件中,因为实际项目上,内容多,模块多,若都配置在一个文件中,找不好找,改不还改,所以,给予建议应优先采用引入配置文件的方式,也就是类似于1.4中的内容。一个大的模块进行创建一个文件夹,进行存放不同的配置文件,这样方便我们后期的运维。好,nignx.conf的讲解内容就到这!!!!!
在这里插入图片描述