Centos7 Nginx 反向代理 Tomcat

本贴最后更新于 2139 天前,其中的信息可能已经水流花落

      在服务器搭建的 solo 一直没有用 Nginx,并且直接在 Tomcat 把端口改成 80,443,并且安装 SSL 证书。现因需添加其他服务,故启用 Nginx,便于方便管理。

一、下载 Nginx 安装包

      http://nginx.org/en/download.html,选择适合自己的 Nginx 版本,这里选的是最新版,下载后并上传到 Centos 服务器。

二、安装之前准备工作

      执行下面的命令,安装 nginx 依赖库

yum install gcc-c++ yum install pcre   yum install pcre-devel   yum install zlib    yum install zlib-devel   yum install openssl   yum install openssl-devel

      解压安装包

tar -zxvf nginx-1.15.12

      切换到解压目录下,执行

./configure

      如果没错错误出现,说明当前可以安装 Nginx,执行

make make install

      成功后,默认安装位置为 /usr/local/nginx

三、设置开机自启动 Nginx

      执行以下命令写自启动命令

cd /lib/systemd/system/ vim nginx.service

      文件内容如下

[Unit] Description=nginx  After=network.target      [Service]  Type=forking  ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx reload ExecStop=/usr/local/nginx/sbin/nginx quit PrivateTmp=true      [Install]  WantedBy=multi-user.target

      退出并保存文件,执行 systemctl enable nginx.service 使 nginx 开机启动。
      启动 systemctl start nginx.service    
      终止 systemctl stop nginx.service    
      重启 systemctl restart nginx.service    

四、验证是否成功

      输入网址 http://xxx.xxx.xxx.xxx 若出现欢迎界面,即安装成功。

五、反向代理 Tomcat

      在这之前 tomcat 已可以加端口正常访问,我的 tomcat 已经默认 80 443 端口,并添加 SSL 证书,把证书撤掉,端口改回默认 8080 8443 端口。
      购买下载 SSL 证书,个人反正就是免费的,阿里申请一个。下载 Nginx 版本的 SSL 放到 /usr/local/nginx/cert
      在目录 /usr/local/nginx/conf 下,并修改配置文件 nginx.conf
      注意在修改的时候 一定要备份! 真是血的教训!
      在文件 http {}中进行配置,Nginx 默认是监听 80 端口的,还有好多注释,不用管,删掉

upstream myblog{ server localhost:8080; } server { listen 80; server_name aeneag.xyz www.aeneag.xyz; rewrite ^/(.*)$ https://aeneag.xyz/$1 permanent; } server { listen 443 ssl; server_name aeneag.xyz www.aeneag.xyz; root html; index index.html index.htm; ssl_certificate ../cert/aeneag.xyz.pem; ssl_certificate_key ../cert/aeneag.xyz.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; proxy_pass http://myblog$request_uri; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 10m; } }

      注意:新版的 Nginx 没有 ssl on; 变成了 listen 443 ssl;
      保存退出后,在 /usr/local/nginx/sbin 目录下,执行 ./nginx -t 查看配置文件是否正确,如果正确重启 Nginx 服务 systemctl restart nginx.service 
      Tomcat 那边,需更改 server.xml 配置文件中的 host 节点

六、问题解决

      因之前 linux 服务器上只有 tomcat 一个服务,并没有用 Nginx,现需在服务器上跑其他项目,故更改以便管理。

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    950 引用 • 943 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖 • 4 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 6 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...