怎么搭建一个可以被外网访问的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发布到外网
课题名称:基于Linux系统的Web服务器的安装与配置
姓 名: 班 级:
完成时间: 指导老师:
内容安排:
首先对WEB服务器的可行性进行研究,然后对主机的硬件和软件进行需求分析,在此基础上进行概要设计和详细设计。接下来对软件框架的各组成部分的实现分章进行详细的描述,最后总结实现一些关键的解决方法和改进的几个思路。
1、 绪论
简单介绍了一下架设WEB网站的意义, WEB服务器的工作原理, 企业背景介绍,并简要介绍了论文的内容要求。
2、 Web服务器的基础知识
对什么是WEB服务、服务器软件Apache、脚本语言PHP、HTTP协议作了详细的介绍。
3、 Web服务器的设计过程
根据可行性的研究,对整个系统的软件和硬件需求进行分析。对软硬件进行架构设计,描述如何实现,包括基础理论分析,设计思路和设计方法,并对具体的设计步骤进行了重点理论解析。
4、 WEB服务器的建立
对系统的运行进行安装,了解Apache的体系结构及性能、PHP脚本配置环境,用Apache进行设置虚拟主机,实现基于IP地址虚拟主机服务,先规划IP地址:为虚拟主机申请新的IP地址,让ISP做好相应的域名解析工作,为网卡设置IP别名,重新设置“/etc/httpd/conf/httpdconf”文件,建立相应的目录,将主页的内容放到相应的目录中去就行了,再配置一下PHP语言脚本环境。测试一下能否实现的可行性。
5、问题和改进
实现中可能遇到的问题及解决方法,服务器改进的方向。
6、作简要的总结。
论文的技术路线及预期目标:
技术路线:在Linux平台下配置一个WEB服务器环境,使网站正常运行,首先需要在一台PC机上创建一个Linux平台,由于我们绝大部分PC用的是Windows的操作系统,对此,我们可采用虚拟机VMware Workstation在Windows系统下虚拟一个Linux平台,然后运用与Linux兼容性良好的Apache服务软件、PHP语言脚本配置环境,基于Linux操作系统,架设一个稳定、安全、高效的WEB服务器环境,可支持运行以PHP或者HTML为基础的网页,要求正确安装好操作系统Linux WEB服务器软件Apache、脚本语言PHP,了解有关参数,同时合理设置,使得服务器环境简易高效。
预期目标:在Linux环境下运用兼容性良好的Apache服务软件实现一个Web服务器,在局域网内,将此服务器程序在一台计算机上运行,使网内其它计算机访问这台服务器时,实现HTTP协议的传输,并能解析以PHP或者HTML为基础的网页。
课题进度计划:
完成课题所需条件及落实措施:
所需条件:计算机一台、CentOS 52版本的Linux操作系统、虚拟机软件VMware Workstation及各种相关软件,有关Linux操作系统方面的资料(书籍、网络资料)。
落实措施:在计算机上先安装虚拟机软件VMware Workstation,采用虚拟机VMware在Windows系统下虚拟一个Linux平台,然后运用与Linux兼容性良好的Apache服务软件,PHP语言脚本配置环境。
参考文献、资料:
[1] Red Hat Linux大全,David Pitls编著,姚彦忠 译,机械工业出版社,1999年1月出版
[2] Linux服务器性能调整,(美)约翰逊,(美)威曾格,(美)普拉瓦提 著,韩智文 译,清华大学出版社,2009年9月出版
[3] Linux服务器架设,杨鹏编著,清华大学出版社,2008年出版
[4] Linux网络服务器应用教程,王兴主编,中国铁道出版社,2009年9月出版
Linux上如果要搭建网站服务,那需要安装配置WEB依懒的运行环境,现在主流的WEB环境有LNMP、或者Tomcat+Java+MySQL系的。考虑到当下LNMP环境居多,所以我们建议先安装LNMP集成环境。
Linux下安装LNMP集成环境
LNMP集成环境代表的是:Linux+Nginx+MySQL+PHP的集成安装包,安装方法如下:
#wgetlnmp/lnmp15targz-cOlnmp15targz&&tarzxflnmp15targz&&cdlnmp15&&/installshlnmp通过这一行命令即可实现LNMP环境的安装,在安装过程中它会让你选择相关的软件包的版本和设置数据库密码等,根据终端上的提示信息一步步操作即可。
Linux下配置Nginx
Nginx是当下主流的HTTP及反向代理服务器,通过上面的安装后,我们就需要修改Nginx的配置文件,主要是绑定域名及站点根目录。
#vi/usr/local/nginx/conf/nginxconf找到server配置节,大概的配置项示:
在防火墙中开放WEB端口
通过以上设置后,虽然绑定了站点的域名、端口、根目录,另外也配置了动态PHP脚本的支持,虽然这样,外网可能依旧无法访问网站。
阿里的ECS有一个安全组的概念,你必须要确保两点:
在iptables或者firewalld里开放WEB端口(80端口或自定义端口);
在阿里云控制台中ECS的安全组配置里设置入站规则,
在Nginx中绑定域名和配置站点都需要修改Nginx的配置文件(nginxconf)。虽说网上有一些开源的管理面板,但我们并不推荐使用这类面板,因为它们的权限给的很大,还是有一定风险的。
你好, 这个是WEB服务器,因为你能用WEB浏览器访问你的服务器了。
但估计你装的是一体化安装包。你目前显示的只是WEB服务器的增强功能模块PHP模块和MYSQL数据库模块的信息。不是WEB服务器本身的信息。
上传方式很简单,你把文件直接拷贝到WEB服务安装的目录下即可, 目前从你的信息上, 看不到这个目录到底在那个位置,一般来将你装的WEB服务器是APACHE,你查下/HOME等目录下有没有就可以了。。。
可以参考如下Web服务器的建立过程。示例环境及web服务器软件:
Ubuntu 1204
LAMP(Linux,Apache,Mysql,PHP)
1、安装Apache
(1)在安装HTTP Server之前需安装APR(Apache Portable Runtime)和APR-util安装APR
$ tar zxvf apr-146targz
$ cd apr-146/
$ /configure
$ make
$ sudo make install
(2)安装APR-util
$ tar zxvf apr-util-141targz
$ cd apr-util-141
$ /configure –with-apr=/usr/local/apr (whereis apr)
$ make
$ sudo make install
(3)安装httpd-242tarbz2默认安装位置/usr/local/apache2网页放在/usr/local/apache2/htdocs配置文件/usr/local/apache2/conf/httpdconf
$ tar jxvf httpd-242tarbz2
$ cd httpd-242/
$ /configure
$ make
$ sudo make install
(4)启动HTTP Server$ sudo /usr/local/apache2/bin/apachectl startAH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 127011 Set the ‘ServerName’ directive globally to suppress this message
(5)查看http是否正常运行$ netstat -a | grep httptcp 0 0 :http : LISTEN
(6)在浏览器输入127001如果正常应该显示“It works!”
2、安装MySQL
(1)、下载安装mysql-5525targz,默认安装位置/usr/local/mysql/
$ tar zxvf mysql-5525targz
$ cd mysql-5525/
$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql
$ cmake
$ make
$ sudo make install
$ cd /usr/local/mysql/
$ sudo chown -R mysql
$ sudo chgrp -R mysql
$ sudo scripts/mysql_install_db –user=mysql
$ sudo chown -R root
$ sudo chown -R mysql data/
$ sudo cp support-files/my-mediumcnf /etc/mycnf
$ sudo cp support-files/mysqlserver /etc/initd/mysqlserver
(2)、启动MySQL:
方法1:$ sudo service mysqlserver start
方法2:$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
3、安装PHP
(1)安装下载php-544targz
$ tar zxvf php-544targz
$ cd php-544
$ /configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli --enable-mbstring --with-mcrypt(可能需要安装libmcrypt-dev )
$ sudo make install
$ sudo cp phpini-development /usr/local/lib/phpini
(2)配置HTTP Server使之支持PHPapache配置文件/usr/local/apache2/conf/httpdconf修改或添加如下配置
<;IfModule dir_module>
DirectoryIndex indexphp
<;/IfModule>
<;FilesMatch \php$>
SetHandler application/x-httpd-php
<;/FilesMatch>
(3)重启HTTP Server
$ sudo /usr/local/apache2/bin/apachectl restart
0条评论