详解Nginx如何配置Web服务器的示例代码

  

我将为你详细讲解“详解Nginx如何配置Web服务器的示例代码”的完整攻略。本攻略包含两个示例,分别为简单的静态网站和动态网站。具体步骤如下:

示例一:静态网站

  1. 安装Nginx

使用以下命令安装Nginx:

sudo apt-get update
sudo apt-get install nginx
  1. 配置Nginx

进入Nginx配置文件目录,其中默认配置文件为/etc/nginx/sites-available/default,使用以下命令进行编辑:

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

server块中添加以下内容,其中index.html为你的静态网站首页文件名:

server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
  1. 部署静态网站

将你的静态网站文件部署到/var/www/example.com/这个目录下。

sudo mkdir /var/www/example.com
sudo cp /path/to/your/index.html /var/www/example.com/
  1. 重启Nginx

使用以下命令重启Nginx:

sudo systemctl restart nginx
  1. 访问静态网站

访问http://your_server_ip即可看到你的静态网站。

示例二:动态网站

相比于静态网站,动态网站需要更多的配置。这里以PHP和MySQL为例。

  1. 安装PHP和MySQL

使用以下命令安装PHP和MySQL:

sudo apt-get update
sudo apt-get install php-fpm php-mysql mysql-server
  1. 配置Nginx

同样,在/etc/nginx/sites-available/default中进行编辑,将以下内容添加到server块中:

server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

其中,fastcgi_pass为你PHP版本对应的sock文件路径,这个可以在/etc/php/*/fpm/pool.d/www.conf中进行查找。

  1. 部署动态网站

将你的动态网站文件部署到/var/www/example.com/这个目录下。

sudo mkdir /var/www/example.com
sudo cp /path/to/your/index.php /var/www/example.com/
  1. 设置MySQL数据库

使用以下命令进入MySQL:

sudo mysql -u root -p

创建一个新的数据库并进行授权:

CREATE DATABASE example_db;
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
  1. 修改动态网站代码

在你的PHP文件中,使用以下代码连接MySQL数据库:

<?php
$servername = "localhost";
$username = "example_user";
$password = "password";
$dbname = "example_db";

$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
?>
  1. 重启Nginx和PHP

使用以下命令重启Nginx和PHP:

sudo systemctl restart nginx
sudo systemctl restart php7.2-fpm
  1. 访问动态网站

访问http://your_server_ip即可看到你的动态网站。

相关文章