前面说完了nginx的安装与配置文件的介绍以及静态项目的访问:
一发入魂:一篇文章掌握nginx——nginx的安装
一发入魂:一篇文章掌握nginx——nginx的配置
下面我们说一下nginx如何反向代理tomcat
项目。
首先我们在usr/src
目录下面建一个software
文件夹用于存放项目文件
[root@localhost usr]# cd /usr/src/
[root@localhost src]# mkdir software
将tomcat
文件拖进去。
[root@localhost software]# tar -zxvf apache-tomcat-7.0.70.tar.gz
apache-tomcat-7.0.70/bin/catalina.sh
apache-tomcat-7.0.70/bin/configtest.sh
解压后进入bin目录启动tomcat
发现环境变量没有配置,我们配置一下环境变量。
具体参考一下文章:给虚拟机Linux系统配置java环境变量
配好了之后查看一下java版本:
[root@localhost etc]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
现在我们再去启动一下tomcat
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE: /usr/src/software/apache-tomcat-7.0.70
Using CATALINA_HOME: /usr/src/software/apache-tomcat-7.0.70
Using CATALINA_TMPDIR: /usr/src/software/apache-tomcat-7.0.70/temp
Using JRE_HOME: /usr/java/jdk1.8.0_131
Using CLASSPATH: /usr/src/software/apache-tomcat-7.0.70/bin/bootstrap.jar:/usr/src/software/apache-tomcat-7.0.70/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]#
可以看到启动成功了。
看下日志
也是没问题的。 在tomcat
的webapps
下面创建文件夹testde
,并在里面创建文件a.html
,文件内容
<span>8080<span>
重启tomcat;
[root@localhost test]# pwd
/usr/src/software/apache-tomcat-7.0.70/webapps/test
[root@localhost test]# ll
总用量 4
-rw-r--r--. 1 root root 18 6月 9 20:39 a.html
[root@localhost test]#
下面我们修改一下nginx.conf
[root@localhost conf]# vim /usr/local/nginx/conf/nginx.conf
保存后重启下nginx.
[root@localhost sbin]# ./nginx -s reload
如上配置,我们监听 9001 端口,访问域名为 http://192.168.111.129:9001/test/a.html
,故
访问该域名时会跳转到 127.0.0.1:8080
路径上。在浏览器端输入192.168.111.129:8080
结果如下:
我们发现已经成功的使用9001
端口代理了8080
端口。
重新准备一个tomcat将conf目录下的server.xml
端口全部改成9080
,也在webapps
目录下面建一个test目录和b.html文件,内容<span>9080<span>
。并启动
打开nginx配置文件修改
vim /usr/local/nginx/conf/nginx.conf
修改配置文件如此.重启nginx,./nginx -s reload
[root@localhost nginx]# cd sbin/
[root@localhost sbin]# ll
总用量 4772
-rwxr-xr-x. 1 root root 4885184 5月 25 21:19 nginx
[root@localhost sbin]# ./nginx -s reload
我们去外网访问一下
nginx可以根据路径的不同,去访问不同的项目。
location 指令说明:
该指令用于匹配 URL。
语法如下:
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字
符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location
块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~ 标识。