要实现内外网同时访问一个域名,比如: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/下面
执行三个命令:
-
./configure -
make -
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;
}
}
内外网域名统一:nginx端口转发与DNS配置实践
本文介绍了如何通过内网DNS配置和nginx端口转发实现内外网域名统一,详细步骤包括安装gcc、pcre、zlib和openssl,以及部署nginx并配置nginx.conf文件,确保oa.xxx.com:8999和oa.xxx.com:8998能被内外网同时访问。此外,还提及了防火墙设置和nginx对ws、wss协议的支持。
1241

被折叠的 条评论
为什么被折叠?



