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的FastCGI缓存的响应体大小?

    要配置Nginx的FastCGI缓存响应体大小,主要需要进行以下三个步骤: 配置FastCGI缓存 首先需要在Nginx配置中启用FastCGI缓存功能。可以在http或server块中添加以下配置: fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=…

    Nginx 2023年4月19日
    00
  • Nginx环境下WordPress的多站点功能配置详解

    下面是”Nginx环境下WordPress的多站点功能配置详解”的完整攻略。 环境搭建 在开始多站点功能配置前,需要先确保在Nginx环境下安装了WordPress单站点,并且Nginx已经正确配置了PHP解析,这里不再详细介绍。如果尚未安装单站点WordPress和配置Nginx,可以参考这篇文章:在Nginx环境下安装WordPress单站点的完整攻略 …

    Nginx 2023年5月16日
    00
  • nginx proxy_pass 指令

    文档 Nginx 官方文档 https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass Nginx 服务器的反向代理 proxy_pass 配置方法讲解 https://www.cnblogs.com/lianxuan1768/p/8383804.html Syntax: prox…

    Nginx 2023年4月13日
    00
  • nginx 配置后网站图片加载出来一半或者不出来

    项目进行nginx反向代理后发现图片和js、css等加载很慢,甚至加载不出来。 然后查看nginx的log,发现错误如下:   [html] view plain copy   2016/06/30 15:31:12 [crit] 29465#0: *10 open() “/usr/local/nginx/proxy_temp/1/00/0000000001…

    Nginx 2023年4月10日
    00
  • Centos7下nginx的安装与配置教程详解

    下面是Centos7下nginx的安装与配置教程详解的完整攻略: 安装步骤 第一步:更新系统 在安装nginx前,需要先更新系统: sudo yum update 第二步:安装nginx 执行以下命令安装nginx: sudo yum install nginx 第三步:启动nginx 执行以下命令启动nginx: sudo systemctl start …

    Nginx 2023年5月16日
    00
  • Nginx (Mainline Stable Legacy)区别

    Nginx官网提供了三个类型的版本Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生产环境上建议使用的版本 Legacy versions:遗留的老版本的稳定版 http://nginx.org/en/download.html

    Nginx 2023年4月13日
    00
  • nginx main函数

    源代码: int ngx_cdecl main(int argc, char *const *argv) { ngx_int_t i; ngx_log_t *log; ngx_cycle_t *cycle, init_cycle; ngx_core_conf_t *ccf; ngx_debug_init(); if (ngx_strerror_init() …

    Nginx 2023年4月11日
    00
  • 一次docker中的nginx进程响应慢问题定位记录

    有个ft测试的环境,其中nginx使用docker发布的。测试用例是curl的时候,没有获得nginx的响应。 docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e39be26bc976 cdn-release-docker.artnj.zte.com.cn/img-for-ott…

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