Ubuntu下搭建与配置Nginx服务

  

下面是Ubuntu下搭建与配置Nginx服务的完整攻略,包含两条示例说明:

确定Ubuntu版本并安装Nginx

首先,要确定已经安装了Ubuntu,可以通过命令lsb_release -a查看版本。然后,使用以下命令安装Nginx:

  1. 更新Ubuntu软件包列表:sudo apt-get update
  2. 安装Nginx:sudo apt-get install nginx

安装完成后,就可以通过以下命令启动Nginx服务:sudo systemctl start nginx。如果需要开机自启动,则可以使用以下命令:sudo systemctl enable nginx

配置Nginx服务器块

Nginx服务器块可以帮助区分不同域名下的不同网站,可以根据实际需要进行配置。

  1. /etc/nginx/sites-available/目录下创建一个新的配置文件,命名为域名的名称,例如example.com
  2. 打开该文件并进行编辑。将以下配置内容粘贴进去:
server {
    listen 80;
    listen [::]:80;

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

    server_name example.com www.example.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

在上述配置文件中,server_name指定域名,root指定该域名对应网站的路径,location指定请求的处理方式。

  1. 创建一个符号链接到/etc/nginx/sites-enabled/目录,如下所示:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  1. 检查Nginx配置是否正确,使用以下命令进行检查:sudo nginx -t。如果没有问题则显示nginx: configuration file /etc/nginx/nginx.conf test is successful
  2. 重启Nginx服务,使用以下命令:sudo systemctl restart nginx

示例一:使用Nginx搭建静态网站

假设有一个名为example.com的域名,该域名需要提供一个简单的静态网站。那么,可以按照以下步骤进行配置:

  1. /var/www/目录下创建一个名为example.com的目录,然后在该目录下创建一个名为html的子目录。
  2. 将静态网站的内容放置在/var/www/example.com/html/目录下。
  3. 根据上述“配置Nginx服务器块”的步骤,在/etc/nginx/sites-available/目录下创建一个名为example.com的配置文件,并在其中指定该网站的路径,例如:
server {
    listen 80;
    listen [::]:80;

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

    server_name example.com www.example.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

最后,重启Nginx服务即可通过example.com访问静态网站。

示例二:使用Nginx搭建动态网站

如果需要提供一个动态的网站,Nginx可以与后端Web应用程序进行集成,以使其能够动态生成内容。以下示例演示如何使用Nginx与Python应用程序一起工作。

  1. 搭建Python虚拟环境,安装Flask框架:
python3 -m venv myprojectenv
source myprojectenv/bin/activate
pip install flask
  1. 创建一个Python应用程序,在/var/www/example.com/目录下创建一个名为myapp的目录,并在该目录下创建一个名为__init__.py的文本文件,内容如下:
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()
  1. /etc/nginx/sites-available/目录下创建一个名为example.com的配置文件,内容如下:
server {
    listen 80;
    listen [::]:80;

    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

在该配置文件中,proxy_pass指定将请求转发到本地服务器的5000端口(这是Flask应用程序运行的端口),proxy_set_header指定NGINX将请求的Host和X-Real-IP头传递给Python应用程序。

  1. 创建一个符号链接到/etc/nginx/sites-enabled/目录:sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  2. 重启Nginx服务:sudo systemctl restart nginx
  3. 运行Python应用程序:python /var/www/example.com/myapp/__init__.py

现在,Flask应用程序已经在本地127.0.0.1的5000端口上运行。使用Web浏览器访问example.com,就可以看到“Hello World!”的响应。

相关文章