本文介绍: Apache 是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用计算机平台上,由于其跨平台安全性被广泛使用,是最流行的Web服务器端软件之一

目录

什么是apache

apache配置文件简单介绍

apache常用命令介绍

配置步骤

1.服务以用户webuser运行

2.创建网页文件

3. Directory

4.Basic认证

5.URL重定向

6.虚拟主机配置

7.把3.4.5.6.写到一个配置文件里

8.测试

什么apache

   Apache 是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用计算机平台上,由于其跨平台安全性被广泛使用,是最流行的Web服务器端软件之一。

Apache一个基于流程模块化Web服务器应用程序,它通过每个同时连接创建一个线程。它支持许多功能; 其中许多都被编译为单独的模块扩展核心功能,并且可以提供从服务器端编程语言支持身份验证机制的所有功能,它允许单个Apache Web服务器为许多不同网站提供服务

apache配置文件简单介绍

安装完成配置文件在 /etc/apache 目录下,这里介绍几个 的文件

Linux(Ubuntu 18)之Apache安装(五)_pan_mlpan博客-CSDN博客_apt安装apacheLinux Apache2的安装与介绍1、Apache2的安装1、更新aptsudo aptget update2、安装apache2sudo aptget install apache2默认apache2安装在了/etc/apache2文件夹目录结构如下:apache2 的几个简单命令启动停止重启状态sudo /etc/init.d/apache2 [ start | stop | restart | status ]service apache2 [ starhttps://blog.csdn.net/weixin_42272869/article/details/112984024

详细的可以参考这位前辈的文章

apache常用命令介绍

a2enmod  // a2dismod              # 开启 // 关闭 apache的模块
a2ensite  // a2dissite                 # 开启 // 关闭一个站点配置
a2enconf  // a2disconf               # 启用 // 关闭一个配置文件
原文https://www.dandelioncloud.cn/article/details/1451891697323151362 

配置步骤

注意(使用域名访问网站时,确保可以解析到该域名


1.服务以用户webuser运行

首先创建webuser这个用户

useradd -M -s /bin/nologin webuser

服务安装完成后,默认是以wwwdata用户和组运行我们修改进程的UID,有两种方法修改

——在主配置文件115行左右,这里已经说明 These need to be set in /etc/apache2/envvars (这些需要在/etc/apache2/envvars中配置),其实指向了/etc/apache2/envvars 文件中的环境变量

envvars文件中有下面这样两行,这也是为社么默认是以wwwdata运行服务。主配置文件usergroup指向这里,我们只要把wwwdata替换webuser就可以了,

export APACHE_RUN_USER=wwwdata

export APACHE_RUN_ GROUP=wwwdata

第一种方法

使用sedwwwdata替换为webuser

sedi “s#www-data#webuser#g” /etc/apache2/envvars

 重启apache服务

systemctl restart apache2

查看进程

ps -ef|grep apache2|grepv grep

 第二种方法

直接修改配置文件

 重启apache服务

systemctl restart apache2

查看进程

ps -ef|grep apache2|grep -v grep

2.创建网页文件

创建网站目录

mkdir /data/share/htdocs/skills -p

创建首页文件

echo “This is the front page oskills’s website.”  >  /data/share/htdocs/skills/index.html

创建staff网页文件

echo ““Staff Information”” >  /data/share/htdocs/skills/staff.html

3. Directory

在apache2.conf文件中的160行左右有这样一段配置

<Directory /data/share/htdocs/skills>

        Options Indexes FollowSymLinks        # 如果$没有index.html显示目录列表

        AllowOverride None                             # None 为不读取.htaccess文件

        Require all granted                              # 允许所有访问请求

</Directory>

如果不给你的网站目录配置<Directory>的话,浏览器会报“You don‘t have permission to access this resource.”(您没有访问此资源权限)的错误

4.Basic认证

    <Directory /data/share/htdocs/skills>
        AuthType Basic                                                # 认证类型
        AuthName password                                       # 认证时的提示信息
        Authuserfile /etc/apache2/.htpasswd              # 用户认证的用户和密码文件
        require user zsuser lsus                                 # 允许进行认证的用户
    </Directory>

有了认证配置没有认证文件也是不行的。认证文件用到 htpasswd 

htpasswd – Manage user files for basic authentication (通过管理用户文件的基本认证)

-c                                                 创建加密文件,如果文件已存在,它将被重写并截断

b                                                 直接在命令行输入用户名密码而不是在交互输入

n                                                 不更新文件,将加密后的结果输出

-p                                                不对密码加密,即明文密码
-D                                                删除指定用户

htpasswd -c -b /etc/apache2/.htpasswd zsuser root

htpasswd -b /etc/apache2/.htpasswd lsus root

5.URL重定向

(第一种方法),使用 Redirect 301 重定向 

ServerAlias 使用apache的 m0d_alias 模块,该模块在安装时(这里指 apa-get installs 安装)已经启用了,这种方法基于linux正则表达式

<VirtualHost *:80>
    ServerAlias *.skills.com                                           #当前虚拟主机别名            
    Redirect permanent / /https://www.skills.com/         #永久重定向重定向
</VirtualHost>

(第二种方法),使用 Rewrite 模块实现URL重定向 

Rewrite使用apache的 mod_rewrite 模块,该模块在安装时并没有启用,需要自己启动该模块,Rewrite 重定向基于 poorl 正则表达式

  a2enmod rewrite # 开启Rewrite 模块

<VirtualHost *:80>
    RewriteEngine ON                                                    # 启用Rewrite重写模块
    RewriteCond %{http_host} skills.com$ [NC]         # 定义判断满足执行下面的语句
    RewriteRule ^(.*)$ https://www.skills.com/$1 [R=301]  # 定义规则,R表示永久重定向
</VirtualHost>

6.虚拟主机配置

在/etc/apache2/sites-available/目录下两个文件,分别是 000-default.conf defaultssl.conf 连个文件,第一个文件使用http的80端口提供服务,默认该文件已启用,第二个文件使用https的443加密端口提供服务。

<VirtualHost *:80>

        ServerName  www.skills.com                       设置服务器用于辨识自己主机名端口号

        ServerAdmin webmaster@localhost            当出现故障,为客户提供一个邮件地址

        DocumentRoot  /data/share/htdocs/skills     客户端访问网站的根路径

        Errorlog ${APACHE_LOG_DIR}/error.log     服务错误日志位置

        CustomLog ${APACHE_LOG_DIR}/access.log combined 访问日志文件名日志格式

</VirtualHost>

<VirtualHost _default_:443>

        ServerName  www.skills.com                       设置服务器用于辨识自己主机名端口号

        ServerAdmin webmaster@localhost            当出现故障,为客户提供一个邮件地址

        DocumentRoot  /data/share/htdocs/skills     客户端访问网站的根路径

        Errorlog ${APACHE_LOG_DIR}/error.log     服务错误日志位置

        CustomLog ${APACHE_LOG_DIR}/access.log combined 访问日志文件名日志

        SSLEngine on                                                                                      启用SSL模块

        SSLCertificateFile                /CA/apache.crt                                        CA签发证书

        SSLCertificatekeyFile          /CA/apache,key                                       私钥文件 

</VirtualHost>

7.把3.4.5.6.写到一个配置文件

配置可以分不同的文件写,也可以写到同一个配置文件中

因为 000-default.conf 文件默认是启用的,我们把配置写到这个配置文件中

<VirtualHost *:80>
            ServerAlias *.skills.com
            Redirect permanent / https://www.skills.com         
</VirtualHost>

<VirtualHost *:443>

            ServerName www.skills.com
            DocumentRoot /data/share/htdocs/skills
            SSLEngine ON
            SSLCertificateFile /CA/apache.crt
            SSLCertificatekeyFile /CA/apache.key
         <Directory /data/share/thdocs/skills>
                 AuthType Basic                            
                 AuthName password                        
                 AuthUserFile /etc/apache2/.htpasswd        
                 Require user zsuser lsus                
         </Directory>    
</VirtualHOst>

我们需要启用 SSL 模块

a2enmod ssl

重启 apache 服务使配置生效

systemctl restart apache2

8.测试​​​​​​​


 实际配置的话只配置 1 2 7 8 就可以了。

原文地址:https://blog.csdn.net/qq_68135064/article/details/125385965

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_45120.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注