Nginx常用配置-反向代理-https重定向-端口转发

这篇具有很好参考价值的文章主要介绍了Nginx常用配置-反向代理-https重定向-端口转发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

二级目录映射
目前前后端项目分离场景多了以后,一般是前端一个端口,后端一个端口。

如前端是https://example.com/index.html,调用的接口是https://example.com:4433

如此部署对于一些小项目未免有些麻烦,当然你在公网环境下也可以选择使用子域名、其他域名进行跨域访问。

这里说的是同一个域名,同一个端口,让前后端同时进行访问服务。

前端地址:https://example1.com

接口地址: https://example.com

这里先记录我已经测试通过的反向代理的方式,即不改变原本的server配置。直接通过反向代理将example.com/api 重定向到 example.com:4443/

location ^~ /api/ {
	proxy_pass  https://example.com:4433/;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

值得一提的是,location段的^~是代表某个字符作为开头匹配,这里就是以/api/作为开头进行匹配URL规则。

这里不能写作,因为是正则匹配的意思,用了正则就不能再proxy_pass段配置URI了,所谓URI就是4433端口后面的/。

这里proxy_pass 后面的域名一定要写成 https://examle.com:443/;

如果不写/,当访问example.com/api/index.php时,会代理到example.com:4433/api/index.php。并不能定位到后端的根路径,所以这里以/结束。

非标准HTTPS端口重定向
如果想让你的非标准https端口,如2083支持HTTP跳转HTTPS访问,请参照如下配置。

error_page 497 https://$host:2083$request_uri;

如果不这么配置,默认当用户不确定网站协议时,采用了HTTP协议访问你的HTTPS网站就会出现无法访问。

错误如:The plain HTTP request was sent to HTTPS port

HTTP强制跳转HTTPS
日常为了保证访客安全性,我们常常需要让全站保持HTTPS访问,那么你可以通过以下配置。

server {
    listen 80 default_server;
    server_name example.com;
    rewrite ^(.*) https://$server_name$1 permanent;
    #上面的rewrite也可以写作
    return 301 https://$host$request_uri;
}
server {
	listen 443 ssl;
	server_name example.com;
}

做法是,让80监听到的HTTP链接全部重定向到HTTPS端口中。

HSTS策略保持HTTPS连接
与此同时,你也可以通过开启HSTS策略强制让访客浏览器保持使用HTTPS链接,添加如下代码:

  • add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;
  • max-age:设置单位时间(秒)内強制使用 HTTPS 连接,这里为1年
  • includeSubDomains:可选,站点所有子域同时生效
  • preload:可选,非规范值,用于定义使用『HSTS 预加载列表』
  • always:可选,保证所有响应都发送此响应头,包括各种內置错误响应

Nginx反向代理
反向代理的场景很多,例如前面的前后端统一域名端口,例如负载均衡等。

location / {
    proxy_pass  http://example.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

完整参数配置

location / {
	proxy_pass  http://example.com;
	proxy_redirect     off;
	proxy_set_header   Host             $host;
	proxy_set_header   X-Real-IP        $remote_addr;
	proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
	proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
	proxy_max_temp_file_size 0;
	proxy_connect_timeout      90;
	proxy_send_timeout         90;
	proxy_read_timeout         90;
	proxy_buffer_size          4k;
	proxy_buffers              4 32k;
	proxy_busy_buffers_size    64k;
	proxy_temp_file_write_size 64k;
}

端口转发
Nginx端口转发性能也非常强大,可以用于内网数据库、其他服务端口外露的场景。

如将内网的192.168.1.2MySQL数据库端口通过Nginx所在服务器的33062端口进行外露。文章来源地址https://www.toymoban.com/news/detail-603190.html

upstream TCP3306 {
	hash $remote_addr consistent;
	server 192.168.1.2:3306;
}

server {
	listen 33062;
	proxy_connect_timeout 5s;
	proxy_timeout 300s;
	proxy_pass TCP3306;
}

到了这里,关于Nginx常用配置-反向代理-https重定向-端口转发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

    下载使用 链接:https://pan.baidu.com/s/1uQ7yCzQsPWsF6xavFTpbZg 提取码:htay –来自百度网盘超级会员V5的分享 ad_load.lua文件

    2024年01月18日
    浏览(66)
  • Nginx 配置 HTTPS 过程(+反向代理)

    nginx配置HTTPS前置条件 我这里参考了一个网友的文章,有兴趣可以直达:手把手教你Nginx 配置 HTTPS 完整过程_somnus_小凯的博客-CSDN博客_nginx配置https 。 不建议只一端配置https,另一端不配置,因为浏览器会拦截并给你一个白眼: mixed-content 。大意是要你:  前端https页面中不能

    2023年04月08日
    浏览(48)
  • nginx反向代理webSocket程序并配置SSH端口

    需求背景:当前有个网页版的XShell项目(webSocket程序同理),需要使用到nginx做反向代理 XShell项目是Java开发的,端口为: 9017 ,与nginx部署在同一台Linux中 在sbin文件夹中,执行命令: 查看是否出现 configure arguments: --with-stream 存在上述参数,证明支持SSH,如: 不存在上述参数,

    2024年02月12日
    浏览(41)
  • Nginx分端口部署两个或多个项目(包含反向代理配置)

    Author:think 一、部署Nginx 若读者没有部署安装Nginx,则可以参考下面这篇文章进行安装。 CentOS 7非编译安装Nginx_think_mzs的博客-CSDN博客 二、分析Nginx配置文件 通过上面的方法安装的Nginx,其配置文件在 /etc/nginx/ 目录下,如下图所示。 其中 nginx.conf 为Nginx的主要配置文件,在 co

    2024年02月05日
    浏览(48)
  • Nginx常用配置及代理转发

    tcp端口监听是唯一的,nginx要在哪个端口监听,是不能被占用的。配置一个server节点,就等于在server节点启动了一个tcp监听。 nginx同一个端口可以监听多个不同host的请求。配置文件中可以重复写同一个端口的server节点。 nginx默认读取配置文件路径下的nginx.conf,但是我们通常不

    2023年04月26日
    浏览(57)
  • Ubuntu22.04下,nginx安装,配置https和反向代理

    想要给nginx配置https,可以使用自己生成的证书,这种证书是不安全的,多用于测试环境;正式环境使用从证书机构购买的证书。 此处使用的自己生成的证书做测试。 此处使用openssl来生成证书,多用于测试 1、查看openssl是否安装 其中:OPENSSLDIR: \\\"/usr/lib/ssl\\\"为openssl的安装路径

    2024年04月10日
    浏览(54)
  • Nacos基础(3)——nacos+nginx & 集群的配置和启动 & 端口开放 & nginx反向代理nacos集群

    1.nacos集群启动的方式,修改cluster.conf集群的配置,多个nacos; 2.修改启动配置文件application.properties,多个nacos分别以集群方式启动; 3.nginx反向代理多个nacos,配置代理tcp,以及http; 启动8848, 8858, 8868三个服务器 vim cluster.conf配置文件,配置多个nacos服务端口 同步两个的配置

    2024年02月02日
    浏览(63)
  • Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版

    Caddy 是一个通用的、易于使用的 Web 服务器,具有以下特点: 快速: Caddy 使用 Go 语言编写,以高性能著称。 安全: Caddy 支持 HTTPS、自动证书生成、HTTP/2 等安全功能。 易用: Caddy 的配置文件简单易懂,易于配置。 功能丰富: Caddy 支持多种功能,包括反向代理、负载均衡、缓存、

    2024年02月20日
    浏览(55)
  • Nginx之正向代理与反向代理进阶(支持https)

    在【Nginx之正向代理与反向代理】一文中我们实现了将Nginx服务器作为正向代理服务器和反向代理服务器, 但美中不足的是仅支持http协议,不支持https协议 。 我们先看看看http和https的区别: http协议 :协议以明文方式发送数据,不提供任何方式的数据加密。不适合传输一些敏

    2024年02月13日
    浏览(38)
  • nginx 离线安装 https反向代理

    1.1 安装gcc和gcc-c++ 1.1.1下载依赖包 gcc依赖下载镜像地址: 官网:https://gcc.gnu.org/releases.html 阿里云镜像站:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ CentOS 镜像站点:https://vault.centos.org/7.5.1804/os/x86_64/Packages/ ​只需下载如下依赖即可: 1.1.2 上传依赖包 下载完成后,将依赖包上

    2024年02月02日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包