CodeGym /课程 /Docker SELF /安装和配置 Web 服务器 (Nginx/Apache)

安装和配置 Web 服务器 (Nginx/Apache)

Docker SELF
第 7 级 , 课程 0
可用

安装和配置 Web 服务器 (Nginx/Apache)

1. 什么是web服务器?

今天我们聊聊NginxApache,两个最受欢迎的web服务器。听完今天的讲座,你的服务器能骄傲地向网络上的用户打招呼了。

在我们开始输入命令前,先来弄清楚我们想实现什么吧。web服务器就是一个程序,它接收HTTP请求(比如用户在浏览器里输入一个网站地址的时候),处理这些请求并返回对应的内容(HTML页面、文件甚至是一个「404 Not Found」错误)。它是用户和你内容之间的桥梁。

Nginx vs Apache:web服务器之战

如果Nginx和Apache在咖啡馆碰头了,会是这样的:

  • Nginx会点一杯薰衣草拿铁,然后用异步方式解决所有问题:「你给我个请求,我一分钟后把文件给你,别打扰我!」。
  • Apache则更为传统,为每个任务创建一个线程,虽然对大量请求处理速度没Nginx快,但会礼貌地慢慢回复。

简要区别:

特点 Nginx Apache
架构 异步 基于线程
性能 高负载表现优秀 适合动态内容(PHP/Perl)
简单性 配置简单但有特殊性 更通用但更复杂

什么时候用谁?

  • 如果你的网站就是一些静态文件(比如博客或者着陆页),那Nginx是你的好朋友。
  • 如果你运行的是动态web应用(比如PHP网站),Apache会提供更多的灵活性。

2. 安装Web服务器

现在你已经明白了为什么需要它,是时候开始安装了。我们会同时演示如何安装Nginx和Apache。选择你喜欢的,或者两者都安装一下,感受一下专业人士的氛围。

安装Nginx

  1. 更新软件包列表

    sudo apt-get update
    
  2. 安装Nginx

    sudo apt-get install nginx
    
  3. 检查服务器状态

    sudo systemctl status nginx
    

    如果一切正常,你会看到类似这样的输出:active (running)

  4. 检查默认页面: 打开浏览器并输入http://localhost。你应该会看到Nginx欢迎页面,表示安装成功。

安装Apache

  1. 更新软件包列表

    sudo apt-get update
    
  2. 安装Apache

    sudo apt-get install apache2
    
  3. 检查服务器状态

    sudo systemctl status apache2
    

    和Nginx一样,状态应该是“active (running)”。

  4. 检查默认页面: 打开浏览器http://localhost。现在应该显示的是Apache的默认页面。


3. Web 服务器的基础配置

配置在哪里藏着?

  • Nginx 的主配置文件位于以下位置:

    /etc/nginx/nginx.conf
    
  • Apache 的配置文件位于:

    /etc/apache2/apache2.conf
    

试试用你最喜欢的编辑器打开配置文件(比如 nano):

sudo nano /etc/nginx/nginx.conf
重要!

这是你第一次冒险的开始:可能你现在啥都看不懂,因为配置文件看起来像是角色扮演游戏里的咒语。不过别怕 – 我们会搞明白的。

启动、停止和重启服务器

如果你知道如何管理 Linux 中的服务,“事情就完成了一半”。以下是管理这些 Web 服务器的基本命令:

对于 Nginx:

sudo systemctl start nginx   # 启动
sudo systemctl stop nginx    # 停止
sudo systemctl restart nginx # 重启
sudo systemctl reload nginx  # 重载配置

对于 Apache:

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2

检查配置

在重启服务器之前,一定要检查一下有没有犯错:

  • 对于 Nginx

      sudo nginx -t
    
  • 对于 Apache

      sudo apachectl configtest
    

任何配置中的错误都会被显示出来 – 你不会意外弄坏服务器。


4. 演示:启动我们的第一个网站

现在我们要做的是每个Web开发者都很喜欢做的事情——创建一个名字超级有创意的网站,叫做「Hello Server」。

对于Nginx

  1. 创建一个网站目录:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    在文件里写入以下内容(对,所有天才的东西都很简单):

    <h1>Hello, Nginx Server!</h1>
  2. 设置配置文件:

    sudo nano /etc/nginx/sites-available/hello
    

    一个简单的配置示例:

    server {
        listen 80;
        server_name hello.local;
    
        root /var/www/hello;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
        }
  3. 启用配置:

    sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    
  4. /etc/hosts中添加一个条目,在本地机器上设置域名hello.local

    127.0.0.1 hello.local
    
  5. 在浏览器中检查网站:http://hello.local

重要!

hosts文件映射IP地址到域名。这是你的本地DNS服务器。每个操作系统都有这个文件。在Windows中它也存在,地址是C:\Windows\System32\drivers\etc\hosts。

对于Apache

  1. 创建目录:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    填充文件:

    <h1>Hello, Apache Server!</h1>
  2. 创建虚拟主机配置:

    sudo nano /etc/apache2/sites-available/hello.conf
    

    一个配置示例:

    <VirtualHost *:80>
        ServerName hello.local
        DocumentRoot /var/www/hello
    
        <Directory /var/www/hello>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
  3. 启用配置:

    sudo a2ensite hello.conf
    sudo systemctl reload apache2
    
  4. /etc/hosts中添加一个条目:

    127.0.0.1 hello.local
    
  5. 检查工作:http://hello.local


在今天的课程之后,你已经准备好独立安装和配置一个主要的Web服务器了。再加一点努力,你就能部署出不再像儿童画的完整网站和应用程序了。HTTPS就在不远处了,不过我们以后再讲它。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION