nginx配置不同域名访问不同局域网内服务器
不同域名或同一域名不同端口号访问不同的服务器需要做哪些设置
某公司只有1个公网IP,由于业务关系,需设置windows服务器、linux服务器等多台电脑以便运行不同的服务程序。
一种是直接在入口路由器上设置端口转发,且二级域名后需要加端口号才能直接访问服务。一般用户不是很喜欢,还是喜欢用默认的80端口,免去了输入端口号。
设置前景
主域名bandwh.com,其中192.168.2.22是nginx配置的web服务器。192.168.2.23是windows服务器。某业务需要访问192.168.2.23服务器。一种是直输入bandwh.com:8096来访问192.168.2.23。另一种是通过配置二级域名如img.bandwh.com来访问192.168.2.23。
对于第一种,我们可以直接在路由器中端口转发8096至windows服务器。但是这样域名必须是bandwh.com:8096。也可以指定一个二级域名img.bandwh.com,首先在域名服务商处指向img.bandwh.com到公网固定IP,在路由器转发8096端口至局域网192.168.2.23的windows服务器上,在主web服务器上修改nginx配置即可。这样的划就需要通过img.bandwh.com而无需img.bandwh.com:8096来访问服务
server { listen 80; server_name img.bandwh.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-Ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass img.bandwh.com:8096/; } }
这样通过img.bandwh.com访问192.168.2.23服务器上的数据。
还有一种是直接访问img.bandwh.com,不需要在路由器上做端口转发。我们可以这样域名服务商处指向img.bandwh.com到公网固定IP,在内网搭建个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用nginx反向代理将不同域名的请求转发给内网不同机器的端口,就可以“根据域名自动转发到相应服务器的特定端口”的效果。
我们在主web服务器上修改reverse-proxy.conf配置
server { listen 80; server_name bandwh.com; location / { 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_pass http://192.168.2.22:80; } access_log logs/bandwh.com_access.log; } server { listen 80; server_name img.bandwh.com; location / { 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_pass http://192.168.2.23:80; } access_log logs/img.bandwh_access.log; }
这样可以bandwh.com访问192.168.2.22服务器,img.bandwh.com访问192.168.2.23服务器。
技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/web/34.html