Nginx反向代理多域名的HTTP和HTTPS服务的实现_nginx

来源:脚本之家  责任编辑:小易  

配域名的时候,如果域名可以解析成多个IP,则通常使用轮询的方式访问配置ip,访问就固定到那个IP上如果域名只对应一个IP,则二者效果等效,但配置域名需要多一步域名解析的步骤IP不变的情况下,配置成IP就可以了,如果IP会变,配置域名更好www.zgxue.com防采集请勿采集本网。

当前Nginx已经反向代理了两个网站,分别是基于Windows的IIS和Linux的Apach服务器,提供网页服务。

域名和IP都是可以的,域名会多一步解析的过程,所以一般IP地址不经常变的,用IP地址更好一点 因为大部分被代理的机器都是内网的,所以变动的可能性不大

现在有新项目的网页需要对外提供服务,需要在代理服务器上增加另外一个网站,使用HTTPS访问以及HTTP自动跳转HTTPS。由于新网页是静态页面,所以使用Docker部署在Nginx代理服务器上。相关的certificates是通过let's encrypt来获取的,都是单独的证书,没有申请通配符形式的证书。

nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递

在Nginx代理端部署SSL证书即可,后端不需要部署SSL也可以实现HTTPS访问。

域名要做备案,如果用国内IP地址,需要给IP供应商提供你的备案号给你开通IP的80端口。

Nginx代理服务器配置:

默认都是8080端口的所以可以隐藏,其他的端口貌似都得加上吧

worker_processes auto;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /usr/local/nginx/conf/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on;upstream dx.exzel.co.nz { server 127.0.0.1:8080;}upstream mybusiness.exzel.co.nz { server 192.168.1.252:443;}server { listen 80; server_name dx.exzel.co.nz; rewrite ^(.*) https://dx.exzel.co.nz permanent;}server { listen 443; server_name dx.exzel.co.nz; ssl on; ssl_certificate /etc/letsencrypt/live/dx.exzel.co.nz/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/dx.exzel.co.nz/privkey.pem; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; access_log /var/log/nginx/ccieerror.log ; location / { 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_pass http://dx.exzel.co.nz; }}server { listen 80; server_name mybusiness.exzel.co.nz; rewrite ^(.*) https://mybusiness.exzel.co.nz permanent;}server { listen 443; server_name mybusiness.exzel.co.nz; ssl on; ssl_certificate /etc/letsencrypt/live/mybusiness.exzel.co.nz/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mybusiness.exzel.co.nz/privkey.pem; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; access_log /var/log/nginx/mybusiness.log ; location / { 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_pass https://mybusiness.exzel.co.nz; }}server { listen 80; server_name www.empnz.co.nz empnz.co.nz; location / { proxy_pass http://192.168.1.15 ; } }}

以前有过类似的问题 可以参考下: https://segmentfault.com/q/1010000006178253/a-1020000006178297

到此这篇关于Nginx反向代理多域名的HTTP和HTTPS服务的实现的文章就介绍到这了,更多相关Nginx反向代理HTTP和HTTPS内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网! 

这样的用法,当然只能到第百一个的,要这样用在http节点中度加专入这个,server的属具体值你自已改upstream cjdby{server pigoss;server tianyuan;}在server节点中,只保留一下location,然后把proxy_pass改成这样proxy_pass http://cjdby;其它的set_header不变内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • nginx https反向代理tomcat的2种实现方法
  • nginx反向代理之将80端口请求转发到8080
  • linux下为nginx添加jvmroute模块的方法
  • ngnix的简单转发请求之server和location配置详解
  • 开启nginx时端口被占用提示:address already in use
  • nginx下部署vue项目的方法步骤
  • nginx上部署react项目的实例方法
  • nginx屏蔽f5心跳日志、指定ip访问日志
  • nginx 如何实现读写限流的方法
  • nginx正则表达式相关的参数和规则介绍
  • nginx服务器初期基本配置指南
  • nginx 反向代理一个server下配置多个location域名问题
  • nginx 反向代理 配置域名和ip的区别
  • nginx 反向代理支持域名吗
  • nginx 80端口反向代理多个域名,怎样隐藏端口的
  • nginx 可以使用域名反向代理吗
  • 如何获取nginx反向代理域名
  • 买一个域名就可以实现将本机IP通过nginx反向代理到外网上了吗?
  • nginx 80端口反向代理多个域名,怎样隐藏端口的
  • nginx 80端口反向代理多个域名,怎样隐藏端口的
  • Nginx 反向代理为什么可以提高网站性能
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器nginx https反向代理tomcat的2种实现方法nginx反向代理之将80端口请求转发到8080linux下为nginx添加jvmroute模块的方法ngnix的简单转发请求之server和location配置详解开启nginx时端口被占用提示:address already in usenginx下部署vue项目的方法步骤nginx上部署react项目的实例方法nginx屏蔽f5心跳日志、指定ip访问日志nginx 如何实现读写限流的方法nginx正则表达式相关的参数和规则介绍nginx服务器初期基本配置指南nginx提示:500 internal servernginx 多站点配置方法集合权限问题导致nginx 403 forbiddenginx fastcgi错误primary scripnginx服务器的反向代理proxy_pasnginx 403 forbidden的解决办法nginx伪静态配置和常用rewrite伪nginx下301重定向域名的方法小结详解nginx服务器中配置超时时间的windows下nginx+php5的安装与配置nginx下wordpress链接(url伪静态)301永久nginx日常维护常用命令shell脚本定时统计nginx下access.log的pvnginx反向代理springboot的jar包过程解析nginx 如何实现读写限流的方法centos7.x下nginx安装及ssl配置与常用命令使nginx服务器支持.htaccess的方法nginx编译参数大全 configure参数中文详解深入理解nginx中server和location的匹配逻centos 7.0 使用nginx部署flask应用教程
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved