我在centos7 上面搭建了LNMP环境. 我配置好后.在内网测试可以访问.但是绑定域名后,从外网就访问不了.

我在centos7 上面搭建了LNMP环境. 我配置好后.在内网测试可以访问.但是绑定域名后,从外网就访问不了.,第1张

现在运营商限制,比如80就是打不开的。所以你映射了80是没有用的。

分二步。首先查看设置是否正常。

在本地Linux或者Windows的Client设置本地Host记录。设置域名指向对应的IP。对应nginx上设置域名指向。

这样就可以通过Client。直接输入域名访问。应用。

这步Ok了。说明你的设定就没有问题。

第二步,如果你的网络是NAT映射关系,得先将内部Nginx的Web服务器映射出去,通过外网的Client Machine,telnet 外网IP 80,查看是否通讯。通常没有申请,没有备案是打不开的。

如果可以。打开,询问运营商此IP是不是被限制。

解决方法

首先看看是不是防火墙开启了;

本地试下端口是否可访问telnet 1921684155 80;

CentOS 7默认使用的是firewall作为防火墙,这里改为iptables防火墙。

firewall:

systemctl start firewalldservice#启动firewall

systemctl stop firewalldservice#停止firewall

systemctl disable firewalldservice#禁止firewall开机启动

在centos下尝试使用$curl http://127001命令访问nginx。确定是否可以访问。

Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Ramblerru 站点开发的,第一个公开版本010发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 104发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、新浪、网易、腾讯、 淘宝等。

负载均衡

先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。

测试环境

由于没有服务器,所以本次测试直接host指定域名,然后在VMware里安装了三台CentOS。

测试域名 :acom

A服务器IP :1921685149 (主)

B服务器IP :192168527

C服务器IP :1921685126

部署思路

A服务器做为主服务器,域名直接解析到A服务器(1921685149)上,由A服务器负载均衡到B服务器(192168527)与C服务器(1921685126)上。

域名解析

由于不是真实环境,域名就随便使用一个acom用作测试,所以acom的解析只能在hosts文件设置。

打开:C:WindowsSystem32driversetchosts

在末尾添加

1921685149 acom

保存退出,然后启动命令模式ping下看看是否已设置成功

从截图上看已成功将acom解析到1921685149IP

A服务器nginxconf设置

打开nginxconf,文件位置在nginx安装目录的conf目录下。

在http段加入以下代码

upstream acom {

server 1921685126:80;

server 192168527:80;

}

server{

listen 80;

server_name acom;

location / {

proxy_pass http://acom;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

保存重启nginx

B、C服务器nginxconf设置

打开nginxconfi,在http段加入以下代码

server{

listen 80;

server_name acom;

index indexhtml;

root /data0/htdocs/www;

}

保存重启nginx

测试

当访问acom的时候,为了区分是转向哪台服务器处理我分别在B、C服务器下写一个不同内容的indexhtml文件,以作区分。

打开浏览器访问acom结果,刷新会发现所有的请求均分别被主服务器(1921685149)分配到B服务器(192168527)与C服务器(1921685126)上,实现了负载均衡效果。

B服务器处理页面

C服务器处理页面

假如其中一台服务器宕机会怎样?

当某台服务器宕机了,是否会影响访问呢?

我们先来看看实例,根据以上例子,假设C服务器1921685126这台机子宕机了(由于无法模拟宕机,所以我就把C服务器关机)然后再来访问看看。

访问结果:

我们发现,虽然C服务器(1921685126)宕机了,但不影响网站访问。这样,就不会担心在负载均衡模式下因为某台机子宕机而拖累整个站点了。

如果bcom也要设置负载均衡怎么办?

很简单,跟acom设置一样。如下:

假设bcom的主服务器IP是1921685149,负载均衡到1921685150和1921685151机器上

现将域名bcom解析到1921685149IP上。

在主服务器(1921685149)的nginxconf加入以下代码:

upstream bcom {

server 1921685150:80;

server 1921685151:80;

}

server{

listen 80;

server_name bcom;

location / {

proxy_pass http://bcom;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

保存重启nginx

在1921685150与1921685151机器上设置nginx,打开nginxconf在末尾添加以下代码:

server{

listen 80;

server_name bcom;

index indexhtml;

root /data0/htdocs/www;

}

保存重启nginx

完成以后步骤后即可实现bcom的负载均衡配置。

主服务器不能提供服务吗?

以上例子中,我们都是应用到了主服务器负载均衡到其它服务器上,那么主服务器本身能不能也加在服务器列表中,这样就不会白白浪费拿一台服务器纯当做转发功能,而是也参与到提供服务中来。

如以上案例三台服务器:

A服务器IP :1921685149 (主)

B服务器IP :192168527

C服务器IP :1921685126

我们把域名解析到A服务器,然后由A服务器转发到B服务器与C服务器,那么A服务器只做一个转发功能,现在我们让A服务器也提供站点服务。

我们先来分析一下,如果添加主服务器到upstream中,那么可能会有以下两种情况发生:

1、主服务器转发到了其它IP上,其它IP服务器正常处理;

2、主服务器转发到了自己IP上,然后又进到主服务器分配IP那里,假如一直分配到本机,则会造成一个死循环。

怎么解决这个问题呢?因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理acom的访问请求,得用一个新的。于是我们把主服务器的nginxconf加入以下一段代码:

server{

listen 8080;

server_name acom;

index indexhtml;

root /data0/htdocs/www;

}

重启nginx,在浏览器输入acom:8080试试看能不能访问。结果可以正常访问

既然能正常访问,那么我们就可以把主服务器添加到upstream中,但是端口要改一下,如下代码:

upstream acom {

server 1921685126:80;

server 192168527:80;

server 127001:8080;

}

由于这里可以添加主服务器IP1921685149或者127001均可以,都表示访问自己。

重启Nginx,然后再来访问acom看看会不会分配到主服务器上。

搭建虚拟主机管理系统可以通过以下步骤完成:

1 安装服务器操作系统:选择一种适用于服务器的操作系统,如Linux发行版(例如Ubuntu、CentOS)或Windows Server。安装操作系统时,确保选择服务器版本,并进行基本的初始化设置。

2 安装Web服务器软件:常见的Web服务器软件有Apache和Nginx。选择其中一种并按照所选软件的官方文档进行安装。

3 安装数据库服务器:虚拟主机管理系统需要使用数据库来存储用户和站点的信息。常见的数据库软件有MySQL和PostgreSQL。选择其中一种并按照所选软件的官方文档进行安装。

4 配置Web服务器:根据所选择的Web服务器,编辑相关配置文件以启用必要的模块和功能。例如,在Apache中,您可以编辑httpdconf文件;在Nginx中,您可以编辑nginxconf文件。

5 下载和安装虚拟主机管理系统:有许多开源的虚拟主机管理系统可供选择,例如cPanel、Plesk、Virtualmin等。根据您的需求和偏好选择一个系统,并按照其官方文档进行下载和安装。

6 配置虚拟主机管理系统:安装完成后,您需要进行一些必要的配置。这可能包括设置管理员账户、配置DNS服务器、设置邮件服务、定义资源配额等。

7 创建虚拟主机:在虚拟主机管理系统中,您可以创建和管理虚拟主机。根据系统的不同,您可以设置域名、FTP账号、数据库等。

8 安全配置:确保服务器和虚拟主机管理系统的安全性,例如使用防火墙、更新软件、实施访问控制策略等。

9 监控和维护:定期监控服务器和虚拟主机管理系统的性能和安全状态。确保及时进行软件更新、备份数据、检查日志等。

请注意,搭建虚拟主机管理系统需要一定的技术知识和经验。如果您是初学者或对服务器管理不熟悉,建议寻求专业人士的帮助或选择使用托管服务提供商。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 我在centos7 上面搭建了LNMP环境. 我配置好后.在内网测试可以访问.但是绑定域名后,从外网就访问不了.

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情