如何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
如何安装配置Oracle Linux 9.x nginx php-fpm环境?

1 前言 一个问题,一篇文章,一出故事。 本章将完成Nginx与PHP-FPM的集成。 2 最佳实践 …

Nginx
Nginx完全指南

《Nginx完全指南-实现高性能负载均衡的进阶实操指南-第三版.pdf)》

Nginx
如何使用Nginx分享文件日志?

1 前言 一个问题,一篇文章,一出故事。 笔者需要分享Squid日志给开发人员调试,于是想到使用Ng …