如何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
如何使用Nginx发布维护公告?

1 前言 一个问题,一篇文章,一出故事。 最近由于需要发布维护公告,想着这种东西以后用得着,于是总结 …

Nginx
如何实现Nginx第一次访问跳转?

1 前言 一个问题,一篇文章,一出故事。 笔者在NextCloud生产环境中需要实现首次登录显示公告 …

Nginx
如何实现Nginx首次访问跳转?

1 前言 一个问题,一篇文章,一出故事。 笔者在NextCloud生产环境中需要实现首次登录显示公告 …