解读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 的主要设置,这里可以添加多个serverhttp {每一个Server都是一个服务
server{#这里是过滤请求,/是所有请求都可以location /{}
}

下面部署nginx 并使其转发到tomcat下的重点在于server这个块。

  server {listen       80; #首先是nginx的监听端口默认为80server_name  www.xxxx.com; #这里是你需要访问的域名地址#add_header 'Access-Control-Allow-Origin' '*';#这里是http 域名跨域,报错时候添加的请求头,这样写所有请求都会进来,会很不安全。#charset koi8-r;#access_log  logs/host.access.log  main;#这里是 日志文件的生成路径#详细介绍locationlocation / {#是监听的端口默认访问的地址,这里如果没有做tomcat的转发则会进入nginx的html目录下的index.htmlroot   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_hash3.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:新人博主,希望大家嘴下留情,如有错误的地方,请在下方留言,大家一起讨论才能更快的进步,谢谢大家!

nginx配置文件 通过域名访问相关推荐

  1. 通过Nginx配置多域名访问

    通过Nginx配置多域名访问 一.下载Nginx 访问Nginx官网选择对应版本和安装包:http://nginx.org/ 以下讲述为在Windows环境下配置Nginx进行多域名访问 二.Ngin ...

  2. nginx 防止恶意域名解析_配置nginx只允许域名访问,禁止ip访问【图文教程】

    平凡也就两个字: 懒和惰;成功也就两个字: 苦和勤;优秀也就两个字: 你和我.跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!每一篇文章都是心 ...

  3. Nginx只允许域名访问网站,禁止使用IP 访问80,443端口

    转载来源 :Nginx只允许域名访问网站,禁止使用IP 访问80,443端口 :http://www.safebase.cn/article-260225-1.html 摘要: 一.背景 为了避免别人 ...

  4. nginx只允许域名访问,禁止ip访问

    背景: 为什么要禁止ip访问页面呢? 这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生. 解决方法: 这里介绍修改 ...

  5. nginx配置php域名访问,nginx+php+composer+git+域名配置+项目访问

    本文作者: 架构师刘涛? -------------- epel仓库安装 epel是yum的软件源,里面包含了许多基本源里没有的软件 #默认的yum源无法升级PHP,需要添加第三方yum源,我们选择w ...

  6. 限制nginx仅能域名访问,不可用ip访问

    在nginx.conf 文件里 初始时是: 1 2 3 4 5 server {     listen 80 default_server;     server_name www.lnmp.org; ...

  7. nginx必须使用域名访问的两种设置方法

    nginx默认允许使用IP直接访问http服务. 如果没有指明,切nginx设置了多个站点,会自动指向第一个加载的server. 如果需要限制必须使用域名访问可以按如下方法设置. 方法1: 在第一个加 ...

  8. nginx解决使用域名访问项目

    我们现在访问页面使用的是:http://localhost:9001 有没有什么问题? 实际开发中,会有不同的环境: 开发环境:自己的电脑 测试环境:提供给测试人员使用的环境 预发布环境:数据是和生成 ...

  9. nginx禁止未绑定域名访问返回444

    来源于:http://blog.csdn.net/qq435792305/article/details/8298244

最新文章

  1. Silverlight技术支持谷歌Android
  2. 火狐浏览器书签(收藏夹)全部消失,历史记录也消失,如何恢复
  3. Compass样式重置
  4. webrtc静音检测
  5. AJAX通过HTML请求C#一般处理程序
  6. iOS中使用URL Scheme进行App跳转
  7. 彻底搞懂使用MyBatis时为什么Dao层不需要@Repository
  8. 设计模式学习02-观察者模式
  9. 一位区域销售经理百条经验手记
  10. android 个人标准身高计算器,Android开发:标准身高计算器应用的…
  11. 斐讯路由器k3c虚拟服务器,斐讯K3C路由器32.1.26.175如何打开telnet升级到官改固件教程...
  12. 对比修改过的两个BOM表
  13. 为什么html中图片显示不出来,网页图片不显示怎么回事?网页图片不显示的解决方法...
  14. 基于深度学习的多目标跟踪(MOT)技术一览
  15. stm32 系统进入stop模式_STM32开发笔记78: 2种STOP模式的唤醒方法
  16. 机器学习笔记(三)——归一化、KD树、数值型特征无量纲化、数值型特征分箱等
  17. 计算机主机与外部接口,核心与外部设备间接口
  18. java u盘_Java检测Windows的U盘插入详解
  19. 【Python字符串】
  20. java data jpa_java中Spring data jpa通过Predicate查询时间段

热门文章

  1. 经典的 X-ray 冠脉造影图像的重建
  2. s3c-jpeg.c
  3. 函数重载与函数模板的比较
  4. open_output_file函数
  5. 【数据分析】5大SQL数据清洗方法!
  6. VB6与SQLServer数据库连接实例ADO
  7. 科研tips——透过参考文献看科研素养
  8. python批量修改excel数据_/python批量修改excel工作薄
  9. python读文件readlines_Python File readlines() 使用方法
  10. Webpack5开发和生产模式