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端口

posted @ 2021-11-22 09:55  supermao12  阅读(136)  评论(0编辑  收藏  举报