怎么搭建一个可以被外网访问的linux web服务器
首先需要将你的web服务器搭建好,然后需要做NAT,我这里有我的一个做NAT的笔记,分享给你
NAT
拓扑结构图:
要求:
1内网能够ping通外网地址,并且成功访问外网中的web服务;
2外网能够访问内网的ftp服务。
步骤:
一:内网服务器配置
1在内网中设置好ip地址,网关和DNS均为NAT服务器内网口地址,并搭建好ftp服务,此处略
二:NAT服务器配置
1在NAT只能中添加一块网卡作为 外网卡,并设置好ip地址
2开启NAT服务器的路由功能
[root@c2 ~]# vi /etc/sysctlconf
netipv4ip_forward = 1 //将0改为1
[root@c2 ~]# sysctl -p //永久生效
3配置防火墙(必须按照以下循序配置,否则配置完成后不能拼通外网,需配置第二次)
#iptables-X
#iptables-t nat -X
#iptables --flush
#iptables -t nat --flush
//以上为重置链表的命令
#iptables-t nat -A POSTROUTING -s 19216810/24 -o eth1 -j SNAT --to 202101012
//这条命令是将内网19216810/24的源地址映射为NAT服务器的外网口地址,eth1为外网卡
# iptables -t nat -A PREROUTING -p tcp--dport 21 -j DNAT --to 192168111
# iptables -t nat -A PREROUTING -p tcp--dport 20 -j DNAT --to 192168111
//这两条命令是发布内务的ftp服务
或者:
# iptables -t nat -A PREROUTING -p tcp -d 202101012--dport 21 -j DNAT --to 192168111
# iptables -t nat -A PREROUTING -p tcp -d 202101012--dport 20 -j DNAT --to 192168111
#/etc/initd/iptablessave
#/etc/initd/iptablesrestart
验证:
内网访问外网的web服务:
[root@c1 ~]# curl 202101013
web
外网访问内网的ftp服务(外网的防火墙一定要关闭,否则ls查看目录时会出错,或者打开外网的20号端口新建链接的也可以)#
[root@c3 ~]# ftp 202101012
Connected to 202101012 (202101012)
220 (vsFTPd 222)
Name (202101012:root): ftp01
331 Please specify the password
Password:
230 Login successful
Remote system type is UNIX
Using binary mode to transfer files
ftp> ls
227 Entering Passive Mode(192,168,1,11,93,1)
ftp: connect: Network isunreachable //列不出内容是因为进入了passive模式
ftp>passive //用passive命令切换passive模式和active模式
Passivemode off
ftp> ls
200 PORT command successful Consider usingPASV
150 Here comes the directory listing
226 Directory send OK
ftp>
补充:
删除防火墙中配置的记录
[root@c2 ~]# iptables -t nat -L POSTROUTING -n --line-number //列出记录和记录序号
[root@c2 ~]# iptables -t nat -D POSTROUTING1 //根据序号删除记录
你将内网的ftp服务换成web服务就可以了,主要是弄懂NAT的原理,将内部服务通过DNAT发布到外网
1开始说明
本教程中使用的IP地址是1921680100,主机名称为Server1examplecom 这些设置可能会有所不同,你需要根据不同情况进行修改。
CentOS 62下安装MySQL
2开始安装MySQL5
首先我们应该先用下面的命令安装MySQL:
yum install mysql mysql-server
然后我们需要创建MySQL系统的启动键链接启动MySQL服务器,这样以便于MySQL在系统启动时自动启动
chkconfig --levels 235 mysqld on
/etc/initd/mysqld start
为MySQL root帐户设置密码:
mysql_secure_installation
会出现下面的一系列提示:
root@server1 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here
Enter current password for root (enter for none):
OK, successfully used password, moving on
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation
Set root password [Y/n] <-- ENTER
New password: <-- yourrootsqlpassword
Re-enter new password: <-- yourrootsqlpassword
Password updated successfully!
Reloading privilege tables
Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them This is intended only for testing, and to make the installation
go a bit smoother You should remove them before moving into a
production environment
Remove anonymous users [Y/n] <-- ENTER
Success!
Normally, root should only be allowed to connect from 'localhost' This
ensures that someone cannot guess at the root password from the network
Disallow root login remotely [Y/n] <-- ENTER
Success!
By default, MySQL comes with a database named 'test' that anyone can
access This is also intended only for testing, and should be removed
before moving into a production environment
Remove test database and access to it [Y/n] <-- ENTER
- Dropping test database
Success!
- Removing privileges on test database
Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately
Reload privilege tables now [Y/n] <-- ENTER
Success!
Cleaning up
All done! If you've completed all of the above steps, your MySQL
installation should now be secure
Thanks for using MySQL!
[root@server1 ~]#
CentOS 62下安装Apache
3安装阿帕奇2
Apache2的是作为一个CentOS的软件包,因此我们可以直接用下面命令安装它:
yum install httpd
现在配置系统在引导时启动Apache
chkconfig --levels 235 httpd on
并启动Apache
/etc/initd/httpd start
现在,您的浏览器到http://1921680100,你应该看到Apache2的测试页:
Apache 2测试网页
Apache的默认文档根目录是在CentOS上的/var/www/html 目录 ,配置文件是/etc/httpd/conf/httpdconf。配置存储在的/etc/httpd/confd/目录。
4安装PHP5
我们可以用下面的命令来安装PHP5
yum install php
安装完需要重启
/etc/initd/httpd restart
CentOS 62下安装PHP5
5我们可以安装PHP5和Apache的PHP5的模块如下:
默认网站的文件根目录是在/srv/www/html中。现在我们将在该目录中创建一个小型PHP文件(infophp的)在浏览器中调用它。该文件将显示很多关于我们的PHP安装,如安装的PHP版本和有用的一些细节。
vi /var/www/html/infophp
修改细节
现在,我们可以用浏览器访问例如http://1921680100/infophp文件
PHP页面
正如你所看到的,PHP5的工作,它通过Apache 20的处理程序,在服务器API线。如果你继续向下滚动,你会看到所有在PHP5中已经启用的模块。MySQL是没有列出,这意味着我们没有在PHP5支持MySQL。
6PHP5获得MySOL的支持
让PHP在MySQL中获得支持,我们可以安装的php-mysql软件包。安装一些其他的PHP5模块,以及您可能需要的应用程序,这是一个好主意:
yum search php
还安装需要安装的
yum install php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc
现在重新启动Apache2的:
/etc/initd/httpd restart
现在,重载http://1921680100/infophp在您的浏览器,并再次向下滚动到模块部分。现在,你应该找到许多新的模块,包括MySQL模块:
MySQL页面
CentOS 62下安装phpMyAdmin
7安装phpMyAdmin
phpMyAdmin是一个网络接口,通过它可以管理你的MySQL数据库。
首先,我们使CentOS系统RPMForge软件库的phpMyAdmin,而不是官方的CentOS 62库:
所以需要导入RPMForge的GPG密钥:
rpm --import http://dagwieerscom/rpm/packages/RPM-GPG-KEYdagtxt
x86_64系统:
yum install http://pkgsrepoforgeorg/rpmforge-release/rpmforge-release-052-2el6rfx86_64rpm
在i386系统:
yum install http://pkgsrepoforgeorg/rpmforge-release/rpmforge-release-052-2el6rfi686rpm
安装phpmyadmin
yum install phpmyadmin
现在我们可以设置phpMyAdmin,了我们可以改变Apache的配置来让phpMyAdmin不仅仅只能从localhost登录。
vi /etc/httpd/confd/phpmyadminconf
配置
下一步,我们从HTTP改变的phpMyAdmin的cookie来身份验证:
vi /usr/share/phpmyadmin/configincphp
修改身份验证
重启阿帕奇
/etc/initd/httpd restart
在地址栏输入http://1921680100/phpMyAdmin/:你就可以访问phpMyAdmin了。
phpmyadmin页面
CentOS可以得到RHEL的所有功能,甚至是更好的软件。但CentOS并不向用户提供商业支持,当然也不负上任何商业责任。
如果你要将你的RHEL转到CentOS上,因为不希望为RHEL升级而付费。当然,你必须有丰富linux使用经验,因此RHEL的商业技术支持对你来说并不重要。但如果你是单纯的业务型企业,那么还是建议你选购RHEL软件并购买相应服务。这样可以节省你的IT管理费用,并可得到专业服务。
安装linux操作系统,安装jdk,安装tomcat配置环境变量,更改tomcat配置文件,写入数据库连接信息,比如:
通过tomcat连接1921681100上的oracle数据库,其中sid为orcl
[tomcat@localhost classes]# pwd
/home/tomcat/apache-tomcat-601/webapps//WEB-INF/classes
[tomcat@localhost classes]# vim hibernateproperties
jdbcurl=jdbc:oracle:thin:@1921681100:1521:orcl
1、apache/nginx/tomcat等等都可以,得看你要部署的页面是什么格式
2、用yum安装,例如yum install httpd
3、用源码编译安装,例如nginx-161gz
tar zxf pcre-813targz
pushd pcre-813
/configure;make;make install
popd
tar zxf nginx-161targz
tar jxf zlib-125tarbz2
tar zxf openssl-101itargz
pushd nginx-161
/configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin \
--with-http_ssl_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-zlib=/zlib-125 \
--with-openssl=/openssl-101i \
--with-pcre=/pcre-813
make;
make install
一台典型的Linux服务器运行命令行环境中,并已经包括了一些用于安装和配置各种没有界面的服务的基本工具。和一些成熟的具有图形界面的桌面软件相比,就安全性、资源消费和速度来说,仅需要少量的设置无疑是一个优点。如果你习惯了使用基于图形界面的软件环境,你也许会想在Linux服务器中是否也有图形界面。典型的Linux桌面环境如GNOME、KDE等,与它们提供的功能相比,其所占用的系统资源负担是很不值得的,而且还不够安全,因为越多的代码越会带来安全弱点。
另外一个成熟的桌面GUI的可选替代是使用基于Web的管理工具。现在已经有许多基于Web的配置管理工具,如 Webmin、ISPconfig、Zentyal等。
在这篇教程中,我会讲述:怎样利用基于Web的界面工具来管理和配置Linux服务器。
Webmin 是一个用Perl语言写的轻量级 (~20 MB) 系统配置工具。 Webmin 具有内置的web服务器, 允许用户通过web接口来配置Linux服务器。 其中一个优点是由于它是基于模块架构的,你可以选择性加载模块来扩展其功能。
0条评论