您现在的位置是:主页 > news > 网站建设教程软件下载/阿拉营销网站
网站建设教程软件下载/阿拉营销网站
admin2025/5/25 14:05:14【news】
简介网站建设教程软件下载,阿拉营销网站,湘西州疫情防控指挥部,东阳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和host和remote_addr都是nginx的导出变量,可以再配置文件中直接使用。这里使用用host代替host代替host代替http_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的讲解内容就到这!!!!!