内外网域名统一(通过内网DNS及nginx端口转发)

内外网域名统一:nginx端口转发与DNS配置实践
本文介绍了如何通过内网DNS配置和nginx端口转发实现内外网域名统一,详细步骤包括安装gcc、pcre、zlib和openssl,以及部署nginx并配置nginx.conf文件,确保oa.xxx.com:8999和oa.xxx.com:8998能被内外网同时访问。此外,还提及了防火墙设置和nginx对ws、wss协议的支持。

要实现内外网同时访问一个域名,比如:oa.xxx.com:8999,内外网同时都能通过此网址访问:

一、设置dns,通过DNS服务器配置向导添加oa.xxx.xom区域,添加完毕后,新建一个空主机,映射相对应的IP地址192.168.9.71(为新安装系统IP)

二:新安装一台centos7,设置主机名为oa:

vim etc/hostname

,配置固定IP为192.168.9.71:

vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=static
HWADDR=FE:FC:FE:DC:51:23
IPADDR=192.168.9.71
NETMASK=255.255.255.0
GATEWAY=192.168.9.254
METRIC=103
DNS1=192.168.9.8
ONBOOT=yes
NAME=eth0

安装部署nginx:

1、安装gcc

gcc是linux下的编译器在此不多做解释,感兴趣的小伙伴可以去查一下相关资料,它可以编译 C,C++,Ada,Object C和Java等语言

命令:查看gcc版本 

gcc -v

 

一般阿里云的centOS7里面是都有的,没有安装的话会提示命令找不到,

安装命令:

yum -y install gcc

 

2、pcre、pcre-devel安装

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

安装命令:

yum install -y pcre pcre-devel

 

3、zlib安装

zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

安装命令:

yum install -y zlib zlib-devel

 

4、安装openssl

openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔。。。。。。

安装命令:

yum install -y openssl openssl-devel

 

安装nginx

1、下载nginx安装包

wget http://nginx.org/download/nginx-1.9.9.tar.gz  

 

2、把压缩包解压到usr/local/java

tar -zxvf  nginx-1.9.9.tar.gz

 

3、切换到cd /usr/local/java/nginx-1.9.9/下面

执行三个命令:


 
  1. ./configure

  2.  
  3. make

  4.  
  5. make install

 

5、切换到/usr/local/nginx安装目录

6、配置nginx的配置文件nginx.conf文件,主要也就是端口

可以按照自己服务器的端口使用情况来进行配置

ESC键,wq!强制保存并退出

7、启动nginx服务

切换目录到/usr/local/nginx/sbin下面

启动nginx命令:

./nginx

 

8、查看nginx服务是否启动成功

ps -ef | grep nginx

浏览器输入IP地址:192.168.9.71,如果无法看到界面,需要关闭防火墙或者允许80及所用到的端口通过:

查看防火墙状态:

systemctl status firewalld

禁止防火墙启动:

systemctl disable firewalld

开启防火墙:

systemctl start firewalld

查看已开放的端口:

firewall-cmd --list-ports

开放端口(开放后需要要重启防火墙才生效):

firewall-cmd --zone=public --add-port=3338/tcp --permanent

关闭端口(关闭后需要要重启防火墙才生效):

firewall-cmd --zone=public --remove-port=3338/tcp --permanent

配置nginx.conf文件:

vim /usr/local/nginx/conf/nginx.conf
 server {
        listen       8999;
        server_name  http://oa.fsbrec.com:8999;
        location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://192.168.9.182:8999;
       }
}
    server {
        listen       8998;
        server_name  http://oa.fsbrec.com:8998;
        location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://192.168.9.181;
       }
}

这样就可以在内网通过oa.xxx.com:8999和oa.xxx.com:8998访问到不同的网站了。

nginx作为反向代理,也可以支持ws及wss,相关配置如下:

wss

# 实际websocket服务器地址
upstream wss_svr {
    server 172.16.0.1:3000;  
}
 
# 443 ssl端口配置,实际websockets(wss)地址
server {
 
    listen 2000;
    server_name my.server.com;
        
    ssl on;
 
    # 自己的证书,放在与nginx.conf同一文件夹下。(若放不同文件夹注意路径问题)
    ssl_certificate /www/my.server.pem;
    ssl_certificate_key /www/my.server.key;
        
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;
    ssl_verify_client off;
        
    location / {        
        proxy_redirect off;
        proxy_pass http://wss_svr;      # 转发
        proxy_set_header Host $host;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;   # 升级协议头
        proxy_set_header Connection upgrade;
    }
        
}


ws协议

# 实际websocket服务器地址
upstream wss_svr {
    server 172.16.0.79:3000;  
}
 
# 443 ssl端口配置,实际websockets(wss)地址
server {
 
    listen 2000;
    server_name my.server.com;
            
    location / {        
        proxy_redirect off;
        proxy_pass http://wss_svr;      # 转发
        proxy_set_header Host $host;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
    }
        
}

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值