Linux httpd搭建
Linux 搭建网站
配置网络
1 改对应配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens32
2 使用命令
nmcli connection add con-name supermao ifname ens32 type ethernet
nmcli connection modify supermao ipv4.method manual ipv4.addresses 10.104.45.235
修改网络编辑器
配置yum源
连接镜像文件
cat > /etc/yum.repo/local.repo << q
name=rhel
baseurl=file:///media
gpgcheck=0
enabled=1
q
mount /dev/cdrom /media
下载
yum -y install httpd 下载网页
yum -y install net-tools 下载查看端口工具
yum -y install bash* 下载补全工具
bash
防火墙允许通过
firewall-cmd --permanent --add-server=http
firewall-cmd --reload
重启httpd
systemctl restart httpd
现在可以访问http://10.104.45.235 来查看httpd有没有搭建成功
Linux搭建个人网站
接着上面做
cd /etc/httpd/conf.d
vi userdir.conf
进入vi的末行模式 %s/UserDir disable/UserDir enabled/g
去掉UserDir public_html 的#号
添加用户
useradd supermao
cd /home/supermao
mkdir public_html
echo 'this is website for supermao' > /home/supermao/public_html/index.html
chmod -R o+x /home/supermao
更改bool值
getsebool -a | grep httpd
setsebool -P httpd_enable_homedirs on
访问http://10.104.45.235/~supermao/
配置基于域名访问的虚拟主机
创建访问的文件
mkdir /www/
chmod o+x /www
cd /www
mkdir one two
cd one
echo "this is a web for virtual host one">>index.html
cd two
echo "this is a web for virtual host two">>index.html
配置虚拟主机文件
cd /etc/httpd/conf.d
vi one.conf
<Directory /www/one>
Require all granted
</Directory>
<VirtualHost 10.104.45.235>
ServerName www.one.com
DocumentRoot /www/one/
</VirtualHost>
vi two.conf
<Directory /www/two>
Require all granted #允许所有访问的请求
</Directory>
<VirtualHost 10.104.45.235>
ServerName www.two.com #域名
DocumentRoot /www/two/ #文件目录
</VirtualHost>
vim /etc/hosts
10.104.45.235 www.one.com
10.104.45.235 www.two.com
systemctl restart httpd
尝试curl www.one.com
报错因为selinux限制了 得修改文件bool值或者关闭selinux
semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'
restorecon -RFv /www
配置基于端口访问
配置主配置文件,添加端口号
vi /etc/httpd/conf/httpd.conf
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
Listen 8088
Listen 8089
创建端口网页并给文件夹递归的执行权限
mkdir -p /www/8088
mkdir /www/8089
echo 'this is a web for port 8088' > /www/8088/index.html
echo 'this is a web for port 8089' > /www/8089/index.html
chmod -R /www o+x
创建文件
cd /etc/httpd/conf.d
cat > 8088.conf << q
<Directory /www/8088/>
Require all granted
</Directory>
<virtualhost 192.168.20.130:8088>
DocumentRoot /www/8088/
</virtualhost>
cat > 8089.conf << q
<Directory /www/8089/>
Require all granted #授予允许权限
</Directory>
<virtualhost 192.168.20.130:8089>
DocumentRoot /www/8089/
</virtualhost> #配置虚拟端口网页的访问路径
设置selinux的上下文和bool值
首先查看http的端口上下文
semanage port -l | grep http
http_cache_port_t udp 3130
http_port_t tcp 8088, 8089, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
开启seliunx添加两条端口号,则selinux不报错
semanage port -a -t http_port_t -p tcp 8088
semanage port -a -t http_port_t -p tcp 8089
但是防火墙会挡住不认识的端口8088与8089
设置防火墙添加端口
firewall-cmd --permanent --add-port=8088/tcp
firewall-cmd --permanent --add-port=8089/tcp
firewall-cmd --reload
配置tls加密
安装TLS加密软件
yum -y install mod_ssl
生成密钥
openssl genrsa > tlsweb.key
生成证书请求文件
openssl req -new -key tlsweb.key > tlsweb.csr
生成证书文件
openssl req -x509 -days 365 -key tlsweb.key -in tlsweb.csr > tlsweb.crt
修改ssl.conf配置文件
SSLCertificateFile /etc/pki/tls/certs/tlsweb.crt
SSLCertificateKeyFile /etc/pki/tls/private/tlsweb.key
将证书文件拷贝到对应目录
cp tlsweb.crt /etc/pki/tls/certs/
把秘钥文件拷贝到ssl.conf配置文件里的对应路径下面
cp tlsweb.key /etc/pki/tls/private/
重启httpd
可以使用更安全的https去访问网站
https://192.168.100.10
若防火墙阻拦则需要开启443端口