如何Nginx代理上游的子项目或文件夹?

Nginx

1 前言

一个问题,一篇文章,一出故事。
笔者接到任务需要把Tomcat的其中一个应用号使用Nginx代理,详细要求如下,
上游服务器URL:http://tomcat.cmdschool.org:8080/appname/
反向代理URL:https://appname.cmdschool.org/

2 最佳实践

2.1 创建反向代理配置文件

vim /etc/nginx/conf.d/appname.cmdschool.org_443.conf

加入如下配置,

server {
  listen 443 ssl;
  server_name appname.cmdschool.org;
  include /etc/nginx/public/ssl_default.conf;

  location / {
    rewrite ^/appname/(.*)$ /$1 redirect;
    proxy_pass http://tomcat.cmdschool.org:8080/appname/;
    proxy_set_header  Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

server {
  listen 80;
  server_name appname.cmdschool.org;
  return 301 https://$host$request_uri;
}

2.2 重载服务使配置生效

systemctl reload nginx.service
systemctl status nginx.service

2.3 相关配置

如果遇到用户无法登录问题,可能是由于Cookies丢失引起,你可以参考如下链接,

如何解决Nginx代理丢失Cookies问题?

没有评论

发表回复

Nginx
如何解决https请求不安全http页被阻止问题?

1 前言 一个问题,一篇文章,一出故事。 笔者最近代理公司应用,发现https的页面有请求不安全的h …

Nginx
如何安装部署RHEL 9 Nignx?

1 前言 一个问题,一篇文章,一出故事。 笔者需要基于RHEL 9部署Nginx环境,于是整理此文。 …

Nginx
如何编译安装Oracle Linux 9.x Nginx?

1 基础知识 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 Ngi …