Nginx反向代理URL重定向

访问http://www.test1.com跳转到https://www.test2.com

log_format www.test1.com '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' '$upstream_cache_status ' '$request_time ' '$upstream_response_time';

server
    {
        listen       80;
        server_name www.test1.com;
        rewrite ^ https://www.test2.com$request_uri? permanent;       
           
        location / {
           proxy_connect_timeout 600s;
           proxy_read_timeout  600s;
           proxy_send_timeout  600s;

           proxy_set_header   X-Real-IP  $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $host;
           proxy_pass http://www.test1.com;
        }


        access_log  /usr/local/n/logs/www.test1.com-access.log  www.test1.com;

}

### Tomcat 和 Nginx 错误页面配置 为了确保当发生错误时,能够正确显示由 Nginx 或者 Tomcat 提供的自定义错误页面而不造成相互跳转的情况,需要分别针对这两个服务器进行适当设置。 #### 修改 Nginx 的 `nginx.conf` 文件来处理 HTTP 请求并返回特定状态码对应的静态 HTML 页面[^4] 对于 Nginx 来说,在其配置文件中可以通过如下方式指定不同类型的错误响应: ```nginx server { listen 80; server_name localhost; error_page 404 /custom_404.html; location = /custom_404.html { root /usr/share/nginx/html; internal; } # Other configurations... } ``` 上述代码片段指定了当遇到 404 Not Found 错误时会重定向至 `/usr/share/nginx/html/custom_404.html` 这个位置下的自定义 404 页面。注意这里使用了 `internal` 关键字表示该 URL 只能通过内部重定向访问而不能被外部直接请求。 #### 调整 Tomcat 中的应用程序以避免重复定义相同的状态码映射[^1] 如果应用程序已经在 Web 应用级别的 web.xml 文件里设置了某些错误页,则可能会覆盖掉全局范围内的默认行为。因此建议移除这些局部设定或将它们调整为指向更合适的资源路径。 例如,在应用级 `web.xml` 中可能有如下配置: ```xml <error-page> <error-code>404</error-code> <location>/errors/not-found.jsp</location> </error-page> ``` 此时应该考虑删除此部分或将其改为其他不会引起冲突的形式,比如更改成相对链接形式以便于维护统一管理。 另外一种方法是在 Tomcat 层面禁用内置的自动错误页面机制,这可以在 `$CATALINA_HOME/conf/web.xml` 下找到相应的 `<error-page>` 元素并注释掉它即可实现。 最后一步就是确认所有的代理规则都已正确定义好,并且没有多余的循环引用存在。通常情况下只需要让 Nginx 处理前端流量并将实际业务逻辑转发给后端的服务实例(如 Tomcat),同时保持各自独立负责各自的错误展示工作就不会出现问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值