Nginx配置实例一反向代理

  • 1、实现效果
    (1)打开浏览器,在浏览器地址栏中输入地址www.123.com,跳转到linux系统中的tomcat页面中。

  • 2、准备工作
    (1)安装Nginx (在上一篇文章中已经记录过安装nginx的过程)
    (2)在linux系统中安装tomcat,使用默认端口8080

安装Tomcat

# 通过wget 命令下载Tomcat压缩包
[root@localhost src]# wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.57/bin/apache-tomcat-8.5.57.tar.gz
--2020-08-31 18:38:17--  https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.57/bin/apache-tomcat-8.5.57.tar.gz
正在解析主机 mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)... 39.155.141.16, 2001:da8:20f:4435:4adf:37ff:fe55:2840
正在连接 mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)|39.155.141.16|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:10379806 (9.9M) [application/octet-stream]
正在保存至: “apache-tomcat-8.5.57.tar.gz”

100%[=================================================================================>] 10,379,806  8.84MB/s 用时 1.1s   

2020-08-31 18:38:19 (8.84 MB/s) - 已保存 “apache-tomcat-8.5.57.tar.gz” [10379806/10379806])

[root@localhost src]# ls
apache-tomcat-8.5.57.tar.gz  debug  kernels  nginx-1.12.2  nginx-1.12.2.tar.gz  pcre-8.37  pcre-8.37.tar.gz
[root@localhost src]# 

解压Tomcat压缩包

# 解压Tomcat
[root@localhost src]# tar -xvf apache-tomcat-8.5.57.tar.gz 

# 查看目录
[root@localhost src]# ls
apache-tomcat-8.5.57         debug    nginx-1.12.2         pcre-8.37
apache-tomcat-8.5.57.tar.gz  kernels  nginx-1.12.2.tar.gz  pcre-8.37.tar.gz
[root@localhost src]# 

启动Tomcat

由于Tomcat的启动需要JDK的支持,所以先查看一下当前linux系统中是否已经安装了JDK,默认情况下是安装了JDK的。如果没有安装就需要自己安装。

安装JDK

[root@localhost src]# sudo yum install java-1.8.0-openjdk -y

查看JDK版本:

[root@localhost src]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
[root@localhost src]# 

启动Tomcat

进入到Tomcatbin目录启动Tomcat,如下:

# 进入到Tomcat的bin目录中
[root@localhost src]# cd apache-tomcat-8.5.57/bin
[root@localhost bin]# 

# 查看当前目录中的 startup.sh
[root@localhost bin]# ls
bootstrap.jar       ciphers.sh                    daemon.sh         shutdown.bat     tomcat-native.tar.gz
catalina.bat        commons-daemon.jar            digest.bat        shutdown.sh      tool-wrapper.bat
catalina.sh         commons-daemon-native.tar.gz  digest.sh         startup.bat      tool-wrapper.sh
catalina-tasks.xml  configtest.bat                setclasspath.bat  startup.sh       version.bat
ciphers.bat         configtest.sh                 setclasspath.sh   tomcat-juli.jar  version.sh
[root@localhost bin]# 

# 启动Tomcat服务器
[root@localhost bin]# ./startup.sh

Using CATALINA_BASE:   /usr/src/apache-tomcat-8.5.57
Using CATALINA_HOME:   /usr/src/apache-tomcat-8.5.57
Using CATALINA_TMPDIR: /usr/src/apache-tomcat-8.5.57/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/src/apache-tomcat-8.5.57/bin/bootstrap.jar:/usr/src/apache-tomcat-8.5.57/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]# 

如上启动之后,可以去看一下启动日志(启动失败时,也可以查看启动日志),启动日志位于Tomcat目录下的log目录中,如下:

# 回到Tomcat目录中
[root@localhost bin]# cd ..

# logs中存放着启动日志文件
[root@localhost apache-tomcat-8.5.57]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@localhost apache-tomcat-8.5.57]# 

# 进入logs目录
[root@localhost apache-tomcat-8.5.57]# cd logs

# 查看日志文件
[root@localhost logs]# ls
catalina.2020-08-31.log  host-manager.2020-08-31.log  localhost_access_log.2020-08-31.txt
catalina.out             localhost.2020-08-31.log     manager.2020-08-31.log
[root@localhost logs]# 

执行tail命令查看,如下:

# tail 命令查看启动日志
[root@localhost logs]# tail -f catalina.out

# 如下 已经成功启动 Tomcat
31-Aug-2020 18:55:16.071 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/usr/src/apache-tomcat-8.5.57/webapps/docs]
31-Aug-2020 18:55:16.150 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/usr/src/apache-tomcat-8.5.57/webapps/docs]的部署已在[79]毫秒内完成
31-Aug-2020 18:55:16.150 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/usr/src/apache-tomcat-8.5.57/webapps/examples]
31-Aug-2020 18:55:17.654 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/usr/src/apache-tomcat-8.5.57/webapps/examples]的部署已在[1,504]毫秒内完成
31-Aug-2020 18:55:17.655 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/usr/src/apache-tomcat-8.5.57/webapps/host-manager]
31-Aug-2020 18:55:17.907 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/usr/src/apache-tomcat-8.5.57/webapps/host-manager]的部署已在[252]毫秒内完成
31-Aug-2020 18:55:17.907 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/usr/src/apache-tomcat-8.5.57/webapps/manager]
31-Aug-2020 18:55:18.019 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/usr/src/apache-tomcat-8.5.57/webapps/manager]的部署已在[112]毫秒内完成
31-Aug-2020 18:55:18.048 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
31-Aug-2020 18:55:18.146 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 4007 ms

访问 Tomcat

首先对外开放访问的8080端口,执行下面的一条命令:

[root@localhost logs]# sudo firewall-cmd --add-port=8080/tcp --permanent
success
[root@localhost logs]# 

重新加载防火墙:

# 重新加载防火墙
[root@localhost logs]# firewall-cmd --reload
success

# 查看防火墙列表
[root@localhost logs]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: dhcpv6-client ssh
  ports: 80/tcp 8080/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	
[root@localhost logs]# 

如上所示,8080端口已经开放了。

  • 访问Tomcat服务器

在Windows系统中通过浏览器访问 Tomcat 服务器,浏览器中输入 IP:8080/(如:192.168.232.129:8080)即可访问默认的Tomcat页面。

配置Nginx反向代理

访问过程分析:

过程分析

用户通过浏览器访问www.123.com域名,请求到nginx,nginx将请求转发到tomcat服务器。即对外暴露的是nginx,tomcat不对外暴露。对外暴露的只是供外部访问的代理服务器nginx。

域名和IP对应关系的配置

浏览器域名访问原理是,当我们在浏览器中输入一个域名之后,首先会访问我们C盘中的host,当C盘中没有记录访问的域名与IP对应的信息是会通过DNS解析我们访问的域名信息。所以我们要在系统host文件中配置IP和域名的映射关系。

在Windows的C盘中找到host文件具体路径为:C:\Windows\System32\drivers\etc将host文件打开后,在最后一行添加下面一行记录(IP 域名)即可。注意:ip和域名之间有一个空格。

192.168.232.129 www.123.com

反向代理配置

在nginx中进行请求转发的配置,首先找到Nginx的配置文件(在/usr/local/nginx/conf路径的nginx.conf

[root@localhost /]# cd /usr/local/nginx/conf

[root@localhost conf]# ls
fastcgi.conf            koi-utf             nginx.conf           uwsgi_params
fastcgi.conf.default    koi-win             nginx.conf.default   uwsgi_params.default
fastcgi_params          mime.types          scgi_params          win-utf
fastcgi_params.default  mime.types.default  scgi_params.default
[root@localhost conf]# 

使用vi命令打开nginx.conf

[root@localhost conf]# vi nginx.conf

打开之后:

server节点下server_name后的

localhost改成192.168.232.129

另外在location节点中添加一条用于转发的信息:

proxy_pass http://127.0.0.1:8080;

 server {
        listen       80;
        # server_name  localhost;
        # 如下一行,将localhost改成自己的ip地址
         server_name 192.168.232.129;

        #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
[root@localhost sbin]# ./nginx -s reload

此时反向代理就设置好了。

在浏览器输入www.123.com后就可以访问到tomcat页面了。

最终效果

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

隻言片語・於此匯聚!