nginx反向代理配置

一:实现效果

  • 打开浏览器,在浏览器地址栏中输入地址,www.123.com,调整到liunx系统tomcat主页面

二:准备工作

  • 在linux系统中安装tomcat,使用默认端口8080
  1. 把tomcat的安装文件放到liunx系统中解压,
  2. 进入到tomcat的bin目录,用命令./startup.sh启动tomcat
  • 也需要jdk的环境,可以用系统自带的

三:具体配置反向代理

  • 第一步:配置域名映射ip地址,当我们浏览器输入域名时,会从本地的C:\Windows\System32\drivers\etc中hoc中hosts文件中读取,如果没有才使用DNS域名解析器解析。

nginx反向代理配置_第1张图片

101.133.165.241 www.123.com

#前面是ip地址,后面是域名
  • 第二步:进入到nginx的nginx.conf文件中配置,i是编辑,wq是保存退出,q是退出
server {
        listen       80;
        server_name  101.133.165.241;#nginx服务器地址

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            proxy_pass http://127.0.0.1:8080;#转发的地址
            index  index.html index.htm;
        }
  • 编辑成功后,重启nginx或者加载nginx配置就可以

nginx反向代理配置_第2张图片

四:反向代理实例二 

  • 实现效果

使用nginx反向代理,根据访问的路径不同跳转到不同端口的服务中,nginx监听的端口为9001

访问 http://101.133.165.241:9001/edu/  直接跳转到101.133.165.241:8080/

访问 http://101.133.165.241:9001/vod/  直接跳转到101.133.165.241:8081/

  • 准备工作

1.准备两个tomcat服务器,一个是8080端口,一个是8081端口。

2.如何修改tomcat的端口号,进入到tomcat的conf目录中,编辑server.xml

(我这里是/usr/demo/tomcat8081/apache-tomcat-9.0.26/conf目录下的)

  

 

1.使用命令:

ps -ef|grep java
查询到到自己想要kill掉的进程id

2.使用命令:

kill -9 id(这里的id为你上一步查找到的id)
  • 准备两个简单的页面用于测试,

1.在/usr/demo/tomcat8080/apache-tomcat-9.0.26/webapps/edu目录下

nginx反向代理配置_第3张图片

2./usr/demo/tomcat8081/apache-tomcat-9.0.26/webapps/vod

nginx反向代理配置_第4张图片

  • nginx具体配置

1.进入到cd usr/local/nginx/conf/到 nginx.conf 配置文件中

2.配置nginx.conf文件

 server {
        listen       9001;#监听的端口
        server_name  101.133.165.241;#目标主机

        location ~  /edu/ { #根据不同的路径转发
            proxy_pass http://101.133.165.241:8080;#转发的ip地址和端口
        }

        location ~ /vod/ {
            proxy_pass http://127.0.0.1:8081;#转发的ip地址和端口
        }
        }
    }

 注意点:需要开放8080(默认开放) ,9001和8081需要手动开放端口,如果是阿里云服务器通过配置本地安全组规则就可以了,但是如果是虚拟机的话可以通过一下命令查看和添加端口

 #查看已经开放的端口号
firewall-cmd --list-all

#对外开放访问的端口
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd -reload

 

  • 重新加载一下nginx.conf配置文件,使其生效,在/usr/local/nginx/sbin目录下运行./nginx  -s reload

五:location指令配置

1.首先我们要明确一下location区块的作用:根据用户请求的网站的URL进行匹配,若某一location区块匹配成功则执行location区块中定义的操作。

2.语法

location [ = | ~ | ~* | ^~ ] uri{
#定义的操作
} 

 

 3.规则

  1. = :用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止向下搜索并立即处理该请求
  2. ~ :用于表示uri包含正则表达式,并且区分大小写
  3. ~*:用于表示uri包含正则表达式,并且不区分大小写
  4. ^~:用于不含正则表达式的uri前,要求nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用location处理请求,而不再使用location中的正则uri和请求字符串比较
  5. 注意:如果uri中包含正则表达式,则必须有~*和~标识。

4.优先级:  =高于^~高于~*高于~。但是"~" ,"~*在配置文件中执行功能是相同的,那么匹配顺序会按照配置中配置的先后顺序进行匹配。

你可能感兴趣的:(nginx)