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!”的响应。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ubuntu下搭建与配置Nginx服务 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 详解Nginx 利用代理转发请求示例

    以下是详解Nginx利用代理转发请求示例的完整攻略。 一、什么是Nginx代理 Nginx代理是Nginx服务器在代理服务器与目标服务器之间充当中间人的角色,接受客户端的请求并将其转发到目标服务器上。利用Nginx代理可以实现多项功能,比如负载均衡、缓存加速、虚拟主机等。 二、Nginx代理实现的两个示例 示例一:基本的代理转发 假如我们有一个服务S1,可以…

    Nginx 2023年5月16日
    00
  • nginx HTTP模块配置常用指令

    接下来我来详细讲解一下“nginx HTTP模块配置常用指令”的完整攻略,包括常用的指令以及两个示例说明。 HTTP模块配置 nginx.conf文件 在nginx.conf文件中配置HTTP模块相关的指令,如http、server、location等。可以使用nginx -t命令检测配置文件是否正确。 站点配置 HTTP模块配置的一种最常见的场景是为网站配…

    Nginx 2023年5月16日
    00
  • nginx cookie 会话保持功能

     sticky 会话保持,基于自定义cookie 进行会话保持的方式 安装包下载地址:https://github.com/bymaximus/nginx-sticky-module-ng ./configure –prefix=/usr/local/nginx –sbin-path=/usr/local/nginx/sbin/nginx –conf-…

    Nginx 2023年4月12日
    00
  • [Linux] Nginx 提供静态内容和优化积压队列

    1.try_files指令可用于检查指定的文件或目录是否存在; NGINX会进行内部重定向,如果没有,则返回指定的状态代码。例如,要检查对应于请求URI的文件是否存在,请使用try_files指令和$ uri变量,如下所示: server { root /www/data; location /images/ { try_files $uri /images…

    2023年4月9日
    00
  • 使用uWSGI和nginx如何设置连接超时时间

    前段时间做一个django的项目,因为之前项目只是一个后台程序,因此数据库设计的并不满足后面新添加的前端的需求,所以查询显示什么的特别冗余,造成了大量的坑。今天就分享一个爬坑的过程。 1先看看需求 项目要求在一个报告中显示一个列表,这个列表包含这个报告中包含的所有任务文件。在发生问题这个报告中包含了大约200个文件,平均每个文件的大小差不多在1.5M左右。对…

    Nginx 2023年4月13日
    00
  • 推荐我的新书《深入理解Nginx:模块开发与架构解析》

    .  背景知识?  如果仅希望了解怎样使用已有的Nginx功能搭建服务器,那么阅读本书不需要什么先决条件。但如果希望通过阅读本书的第二、第三部分,来学习Nginx的模块开发和架构设计技巧,则必须了解C语言的基本语法。在阅读本书第三部分时,需要读者对TCP有一个基本的了解,同时对Linux操作系统也应该有简单的了解。?  如何阅读本书?  我很希望将本书写成一…

    Nginx 2023年4月12日
    00
  • 使用 nginx + thin 的配置启动 rails server

    http://www.iwangzheng.com   在大师的指导下配置了新的服务器的nginx,通过top命令查看了服务器是8个cpu的,所以起了8个端口,把它们都映射到一个总的端口3600上,需要在做如下配置。 1. nginx 中做如下配置: server { listen 3600; charset utf-8; location / { prox…

    Nginx 2023年4月12日
    00
  • ubuntu上安装nginx+mysql+php5-fpm(PHP5 – FastCGI Process Manager)

    题外话:由于近段时间测试环境ssh链路质量不大好,经常短线。故我把整个安装过程放到screen里去执行,以防止断线中断了安装过程。执行screen -S install,这样断线后,只要再执行screen -r install 就可以恢复之前的安装界面。 1.安装mysql sudo apt-get install mysql-server mysql-cl…

    Nginx 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部