nginx配置文件 通过域名访问

解读Nginx配置文件,通过域名访问tomcat

第一次在linux 服务器上使用nginx 并指向tomcat 目录 通过域名 访问项目。遇到了很多坑,为了让自己更好的学习并吸收知识,特意总结了一下这次的经验。

首先我们需要了解一下nginx的组成部分,想必大家都是对他有所了解。
文件所在的路径是 /usr/local/nginx/conf 文件夹下的nginx.conf。

第一个原本的配置文件上是注释的,这里指的是nginx的用户权限,
user nobody;

设置最大的工作衍生进程数 这里默认是1
worker_processes 1

最大的连接数 设置最大的连接数默认为1024个连接数 
events {
    worker_connections  1024;
}

Http 的主要设置,这里可以添加多个server

http {
每一个Server都是一个服务
server{
	#这里是过滤请求,/是所有请求都可以
	location /{
		
	}
}
下面部署nginx 并使其转发到tomcat下的重点在于server这个块。
  server {
        listen       80; #首先是nginx的监听端口默认为80
        server_name  www.xxxx.com; #这里是你需要访问的域名地址
		#add_header 'Access-Control-Allow-Origin' '*';#这里是http 域名跨域,报错时候添加的请求头,这样写所有请求都会进来,会很不安全。
        #charset koi8-r;
        #access_log  logs/host.access.log  main;#这里是 日志文件的生成路径
        
		#详细介绍location
        location / {
        	#是监听的端口默认访问的地址,这里如果没有做tomcat的转发则会进入nginx的html目录下的index.html
            root   html;
            
            #这里是编写监听到的请求所转发的端口号,即tomcat端口
			proxy_pass http://localhost:8081;
            #Proxy Settings;
            #proxy_redirect off;
            #proxy_set_header Host $host;
            #proxy_set_header X-Real-IP $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			
			#设置nginx 的默认显示页
            index  index.html index.htm;

			#设置http请求的请求头,使其在跨域访问上不会被浏览器阻止。ps:这里设置我发现没有用,后来还是在ajax过滤器中添加的 请求头,如果大家有知道这里怎么修改的,请留言大家一起学习。
			add_header 'Access-Control-Allow-Origin' '*';
			add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
			add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

下面是location的设置


	设置服务器缓存
1.	添加一个location  ~.*\.(意思是所有.jpg后缀的文件)
location  ~.*\.(jpg|png|gif)${

2.设置该文件类型文件缓存的清除周期为30天
	expires  30d;
}
location  ~.*\.(css|js)?${

3.设置该文件类型文件缓存的清除周期为1小说
	expires  1h;
}
这里注意 全部请求是/  而过滤的请求是\ 

顺带提一下负载均衡

Nginx 均衡负载的实现 简单提一下 均衡策略
在http 里添加一个upstream 在这个里面依次填写 不同的ip以及端口 nginx 
upstream name{
	server ip:端口号;
	server ip:端口号;
	server ip:端口号;
	server ip:端口号;
}
nginx 的默认均衡策略是加权轮询 
1.加权轮询策略
nginx计算每个后端服务器的权重,然后自动分配权重最高的后端服务器来处理请求。
加权轮询策略 使用 weight=1来给地址添加权重,权重越高,nginx会优先分配

2.ip_hash策略
nginx会记录这个访问的ip地址并且在一段时间中 分配给这个ip一个server。
ip_hash 在upstream 的结尾加上  ip_hash; nginx 自动使用ip_hash

3.url_hash 等.. 插件形式的均衡策略这里就不提了

设置完配置文件下面就是运行测试了。

  1. 进入nginx 启动文件的目录 /usr/local/nginx/sbin
  2. 启动服务 ./nginx (这是在第一次启动时使用,或者进程被杀死时启动。)
  3. 重启服务 ./nginx -s reload (这是在修改了配置文件的情况下,不需要杀死进程)
  4. 如果在使用 ./nginx 命令时 linux 报错nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
    证明这个80端口被nginx占用了,这个时候需要杀死进程 使用killall -9 nginx 或者使用 netstat -apn | grep 80 查询当前80端口 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13741/nginx: master 然后使用kill -9 13741命令杀死进程.
    5.启动nginx服务器就不会报错,如果配置文件出现错误,下面会显示错误的行号。
在浏览器上输入域名,nginx自动在nginx.conf中查找 server_name 对应的域名 的server 下的location跳转到proxy_pass 这里指的的 IP和端口。我这里设置的是8081端口。

在这里插入图片描述

注意如果proxy_pass 配置的IP地址和域名解析的IP地址不同会出现
在这里插入图片描述
这个问题我是在java代码中使用ajax拦截请求后加入到请求头中解决的。

在nginx上添加下面这几段并没有实际效果。
add_header ‘Access-Control-Allow-Origin’ ‘*’;
add_header ‘Access-Control-Allow-Methods’ ‘GET, POST, OPTIONS’;
add_header ‘Access-Control-Allow-Headers’ ‘DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type’;

希望有大牛能解答这个问题。小生感激不尽,搜索了很多博客都是这么配置的。

PS:新人博主,希望大家嘴下留情,如有错误的地方,请在下方留言,大家一起讨论才能更快的进步,谢谢大家!

### 回答1: Faster R-CNN是一种基于区域建议网络(Region Proposal Networks,RPN)的物体检测算法,旨在实现实时物体检测。它通过预测每个区域是否含有物体来生成候选框,并使用卷积神经网络(CNN)来确定候选框中的物体类别。Faster R-CNN在提高检测精度的同时,也显著提高了检测速度。 ### 回答2: 在计算机视觉领域中,目标检测一直是热门研究的方向之一。近年来,基于深度学习的目标检测方法已经取得了显著的进展,并且在许多实际应用中得到了广泛的应用。其中,Faster R-CNN 是一种基于区域建议网络(Region Proposal Networks,RPN)的目标检测方法,在检测准确率和速度之间取得了很好的平衡,能够实现实时目标检测。 Faster R-CNN 的基本框架由两个模块组成:区域建议网络(RPN)和检测模块。RPN 主要负责生成候选目标框,而检测模块则利用这些候选框完成目标检测任务。具体来说,RPN 首先在原始图像上以多个尺度的滑动窗口为基础,使用卷积网络获取特征图。然后,在特征图上应用一个小型网络来预测每个位置是否存在目标,以及每个位置的目标边界框的坐标偏移量。最终,RPN 根据预测得分和位置偏移量来选择一部分具有潜在对象的区域,然后将这些区域作为候选框送入检测模块。 检测模块的主要任务是使用候选框来检测图像中的目标类别和位置。具体来说,该模块首先通过将每个候选框映射回原始图像并使用 RoI Pooling 算法来获取固定大小的特征向量。然后,使用全连接神经网络对这些特征向量进行分类和回归,以获得每个框的目标类别和精确位置。 相比于传统的目标检测方法,Faster R-CNN 具有以下优点:首先,通过使用 RPN 可以自动生成候选框,避免了手动设计和选择的过程;其次,通过共享卷积网络可以大大减少计算量,提高效率;最后,Faster R-CNN 在准确率和速度之间取得了很好的平衡,可以实现实时目标检测。 总之,Faster R-CNN 是一种高效、准确的目标检测方法,是深度学习在计算机视觉领域中的重要应用之一。在未来,随着计算机视觉技术的进一步发展,Faster R-CNN 这类基于深度学习的目标检测方法将会得到更广泛的应用。 ### 回答3: Faster R-CNN是一种结合了深度学习和传统目标检测算法的新型目标检测方法,旨在提高目标检测速度和准确率。Faster R-CNN采用了Region Proposal Network(RPN)来生成候选区域,并通过R-CNN网络对候选区域进行分类和定位。 RPN是一种全卷积神经网络,用于在图像中生成潜在的候选区域。RPN通常在卷积特征图上滑动,对每个位置预测k个候选区域和其对应的置信度得分。这样,对于输入图像,在不同大小和宽高比的Anchor上预测候选框,可以在计算上更有效率。 R-CNN网络利用卷积特征图作为输入,对RPN生成的候选区域进行分类和精确定位。与以前的目标检测方法相比,Faster R-CNN使用了共享卷积特征,使得整个检测网络可以端到端地进行训练和优化,缩短了训练时间,同时也更便于理解和改进。 Faster R-CNN不仅具有较高的准确性,还具有较快的检测速度。在各种基准测试中,Faster R-CNN与其他目标检测算法相比,都取得了优异的性能表现。总之,Faster R-CNN将目标检测引入了一个新的阶段,为实时目标检测提供了一个良好的基础。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想飞翔的鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值