Nginx
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Nginx,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4219字,纯文字阅读大概需要7分钟。
内容图文
1、Nginx与Tomcat区别?
2、Nginx和Apache HTTP Server Project的区别?
Nginx 是轻量级的Http服务器,和Apache HTTP Server 功能完全一样,都是用来处理和响应用户请求的,都是http server
最大的区别:Nginx解决了并发的问题,支撑更高的并发量
3、HTTP协议的特点
- 简单快捷:不管是通过域名方式还是ip:port方式通信都是可以的
- 灵活:可以发送和接受的数据类型特别丰富(文本、图片、js、json)
- 无连接:http通信都是一次性的,发送请求接收到反馈后就会断开,不是长连接
- 无状态:每一次请求,都和以前的请求都是无关系的
4、HTTP协议请求格式
请求行(request line)
请求头(header)
空行和请求数据
5、请求类型
GET:请求指定的页面信息,并返回实体主体
HEAD:类似于GET请求,只不过返回的响应中没有具体内容,用户获取报头
POST:向指定资源提交数据进行处理请求,数据被包含在请求体中
PUT:从客户端向服务器传送的数据取代指定的文档的内容
DELETE:请求服务器删除指定的页面
CONNECT:HTTP/1.1协议中预留给能够将连接改为通道方式的代理服务器
OPTIONS:允许客户端查看服务器的性能
TRACE:回显服务器收到的请求,主要用户测试获诊断
6、HTTP响应状态码
1XX:信息性状态码 接收的请求正在处理
2XX:成功状态码 请求正常处理完毕
3XX:重定向状态码 需要进行附加操作以完成请求
4XX:客户端错误状态码 服务器无法处理请求
5XX:服务器错误状态码 服务器处理请求出错
7、Nginx默认配置文件位置
conf/nginx.conf.default
总体分为三大块:全局块、events块、http块(http全局块+location块)
8、配置内容规则
1、用‘#’表示注释
2、每行配置的结尾需要加上分号
3、如果配置项值中包含于法符号,比如空格符,那么需要使用单引号或者双引号括住配置型值,否则Nginx会报语法错误
4、单位简写
9、Nginx常用命令
10、反向代理、正向代理
反向代理:nginx-reverse.conf
server{
listen 80;
server_name localhost;
location / {
# 服务器端被反向到的ip地址
proxy_pass http://192.168.44.1:9096;
proxy_method POST;
proxy_set_header Host $host;
# 获取客户端的ip地址设置到header中
proxy_set_header X-Real_IP $remote_addr;
#获取所有转发请求的ip信息列表
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
11、负载均衡
nginx-load.conf
upstream ecif {
server 192.168.44.1:12673 weight=2 max_fails=2 fail_timeout=15;
server 192.168.44.1:12674;
server 192.168.44.1:12675;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://ecif
}
}
负载均衡策略:
1、wrr:权重轮询(默认策略)
2、ip_hash:IP的哈希结果固定选择一个真实的服务器
upstream ecif {
ip_hash;
server 192.168.44.1:12673;
server 192.168.44.1:12674;
server 192.168.44.1:12675;
}
3、least_conn:当前活跃连接数越小、权重越大,越优先选择
12、Nginx实现HTTP缓存
nginx-cache.conf
server{
listen 80;
server_name localhost;
location / {
# 服务器端被反向到的ip地址
proxy_pass http://192.168.44.1:9096;
proxy_cache qingshan_cache;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 304 1m;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_method POST;
proxy_set_header Host $host;
# 获取客户端的ip地址设置到header中
proxy_set_header X-Real_IP $remote_addr;
#获取所有转发请求的ip信息列表
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
13、什么是跨域
协议不同、域名不同、子域名不同、端口不同
14、解决跨域
1、前端处理:不要使用ajax请求,采用JSONP方式,因为javascript中
$.ajax({
url:'http://ip/action',
type:'GET',
dataType:'JSONP',
jsonp:'callback',
jsonpCallback:'successCallback',
success:funcation(data){
},
error:function(){
}
})
后端代码
return "successCallback("+retJson.toJSONString()+")";
2、添加Cross通行证
在目标域的被调用方法中添加注解 @CrossOrigin
@CrossOrigin
@ResponseBody
@RequestMapping("action")
public String action(){
return "";
}
添加注解后,会在响应字段的Header中添加
"Access-Control-Allow-Origin":"*"
"Access-Control-Allow-Methods":"GET,POST,PUT,OPTIONS"
"Access-Control-Allow-Credentials":"true"
3、添加配置类WebMvcConfigurerAdapter
@Configuration
public class CorsConfig{
@Bean
public WebMvcConfigurer corsConfigurer(){
return new WebMvcConfigurerAdapter(){
@Override
public void addCorsMappings(CorsRegistry registry){
registry.addMapping("/**").allowerdOrigins("http://192.168.44.1:9096").allowedMethods("GET","POST","DELETE").allowCredentials(false).maxAge(3600)
}
}
}
}
allowerdOrigins:设置允许可访问的域 白名单
4、Nginx配置解决跨域问题-通过反向代理转发,变成同域
server{
listen 7298;
server_name localhost;
location / {
proxy_pass http://192.168.44.1:9096;
}
location /action/ {
proxy_pass http://192.168.44.1:9097;
}
}
5、Nginx配置解决跨域问题-通过配置文件在返回头里面添加请求头
内容总结
以上是互联网集市为您收集整理的Nginx全部内容,希望文章能够帮你解决Nginx所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。