Ubuntu20.04安装配置Nginx

这篇具有很好参考价值的文章主要介绍了Ubuntu20.04安装配置Nginx。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于在学习配置时,网上的教程比较杂乱,用时很久才做好一些基础配置,把流程记录一下方便和我一样的小白学习

本文写于2023.2.10,如果间隔太久,下述内容可能会失效,请另寻教程

仅包含基础教程,个人服务未涉及到负载均衡

  • 安装nginx
  • 配置静态服务器
  • 配置端口转发
  • 配置域名
  • 配置https

服务器: 阿里云ubuntu20.04

nginx版本: nginx/1.18.0 (Ubuntu)

1. 安装nginx

1.1 安装及常用命令
# 更新apt-get源
sudo apt-get update
# 安装
sudo apt-get install nginx
# 安装后将自动开启nginx服务,打开浏览器输入ip即可查看初始页面
# 查看安装版本
nginx -v
# 输出:nginx version: nginx/1.18.0 (Ubuntu)
# systemctl命令
# 查看状态
sudo systemctl status nginx
# 启动
sudo systemctl start nginx
# 停止
sudo systemctl stop nginx
# 重启
sudo systemctl restart nginx

注意:对nginx配置文件修改之后,都要重启nginx服务,加载修改后的配置文件

1.2 文件结构
# 查看文件结构
tree /etc/nginx
/etc/nginx
├── conf.d
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules-available
├── modules-enabled
│   ├── 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf
│   ├── 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
│   ├── 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf
│   └── 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│   └── default
├── sites-enabled
│   └── default -> /etc/nginx/sites-available/default
├── snippets
│   ├── fastcgi-php.conf
│   └── snakeoil.conf
├── uwsgi_params
└── win-utf
1.3 配置文件内容

nginx.conf (为了方便看,我删掉了初始内容中所有带注释的代码)

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
}

http {

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	gzip on;

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

最关键的是下面两行引入,上面的代码含义目前我还没研究,用到再说

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

这两行的意思是:从conf.d中加载所有后缀为conf的文件,从sites-enabled中加载所有文件,均作为配置文件

sites-enabled文件我用不习惯,因此我注释掉了这行,使用conf.d做配置文件

在conf.d中添加static.conf

server {
    listen       80;
    server_name  localhost;

    charset utf-8; # 防止中文显示出现乱码

    #access_log  logs/host.access.log  main;

    location / {
        root   /var/www/html; # 你的静态资源路径
        index  index.html index.htm;# 访问的文件为html, htm
    }
}

要注意的是,在/var/www/html目录中,文件的名字不是index.html,原名为index.nginx.debian.html,改成前者即可。

通过三处修改,完成从sites-enableconf.d的迁移

  • nginx.conf中注释掉include /etc/nginx/sites-enabled/*;
  • conf.d目录下新建static.conf,添加如上文件内容
  • 修改/var/www/html目录中的文件名为index.html
# 检查配置文件是否有误
nginx -t
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful

# 重启服务
sudo systemctl restart nginx

2. 配置静态服务器

自行寻找一个网页做测试,上传到/var/www/html

我上传了之前写过的一个markdown在线编辑器,是一个文件夹,文件夹名为markdown

开始修改static.conf文件

server {
    listen       80;
    server_name  localhost;

    charset utf-8; # 防止中文显示出现乱码

    # 根据自己需要配置日志文件,可以单独配置,也可以全部放在/var/log/nginx的日志中
    #access_log  logs/host.access.log  main;

    location / {
        root   /var/www/html; # 你的静态资源路径
        index  index.html index.htm;# 访问的文件为html, htm
    }
    
    location /markdown {
        alias   /var/www/html/markdown; # 你的静态资源路径
        index  index.html index.htm;# 访问的文件为html, htm
    }
    
    # 后续如果有其他配置,模仿markdown的配置添加即可
    # location /example {
    #     alias   /var/www/html/example; # 你的静态资源路径
    #     index  index.html index.htm;# 访问的文件为html, htm
    # }
}

对于多个路径的配置: [1]

  • 使用root会将location后的markdown追加在路径的尾部,在访问时就会访问到/var/www/html/markdown/markdown

  • 使用alias则不会将location后的markdown追加在路径尾部,访问时就为正确路径/var/www/html/markdown

如果添加charset utf-8;后还存在乱码,强制刷新一下试试

输入IP/markdown查看配置结果

3. 配置端口转发

自行寻找一个服务做测试,开在非80端口即可,我开在了8822端口

注:要在服务器的安全组配置,打开对应端口

首先测试一下 IP:8822 能不能正常使用,可以使用说明服务成功启动在8822端口,进行后续配置。

server {
    listen       80;
    server_name  localhost;
 
    charset utf-8; # 防止中文显示出现乱码

	# 添加头部信息
    proxy_set_header  Cookie $http_cookie;
    proxy_set_header  X-Forwarded-Host $Host;
    proxy_set_header  proxy_set_Server  $Host;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
	
    # 访问IP/eat,则会自动访问对应地址IP:8822
    location /eat/ {
        proxy_pass http://localhost:8822/;
    }
    
    # 后续如果有其他配置,模仿eat的配置添加即可
    # 访问IP/example,则会自动访问对应地址IP:port
    # location /example/ {
    #     proxy_pass http://localhost:port/;
    # }
}

输入IP/eat查看配置结果

4. 配置域名

我从阿里云购买了域名southyang.cn,将子域名demo.southyang.cn解析到服务器上

以端口转发为例:

server {
    listen       80;
    server_name  demo.southyang.cn;
 
    charset utf-8; # 防止中文显示出现乱码

	# 添加头部信息
    proxy_set_header  Cookie $http_cookie;
    proxy_set_header  X-Forwarded-Host $Host;
    proxy_set_header  proxy_set_Server  $Host;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
	
    # 访问demo.southyang.cn/eat,则会自动访问对应地址IP:8822
    location /eat/ {
        proxy_pass http://localhost:8822/;
    }
    
    # 后续如果有其他配置,模仿eat的配置添加即可
    # 访问IP/example,则会自动访问对应地址IP:port
    # location /example/ {
    #     proxy_pass http://localhost:port/;
    # }
}

输入demo.southyang.cn/eat查看配置结果

5. 配置https

以端口转发为例: [2]

server {
    listen 80;
    server_name demo.southyang.cn;
    # 跳转https
    return 301 https://$host$request_uri;
}

server {
    listen 443   ssl http2;
    server_name  demo.southyang.cn;
 
    charset utf-8; # 防止中文显示出现乱码

	# 添加头部信息
    proxy_set_header  Cookie $http_cookie;
    proxy_set_header  X-Forwarded-Host $Host;
    proxy_set_header  proxy_set_Server  $Host;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    
    # 配置证书
    ssl_certificate 证书密钥地址
    ssl_certificate_key 证书公钥地址
    ssl_verify_client off;
    proxy_ssl_verify off;
	
    # 访问demo.southyang.cn/eat,则会自动访问对应地址IP:8822
    location /eat/ {
        proxy_pass http://localhost:8822/;
        proxy_redirect off;
    }
    
    # 后续如果有其他配置,模仿eat的配置添加即可
    # 访问IP/example,则会自动访问对应地址IP:port
    # location /example/ {
    #     proxy_pass http://localhost:port/;
    # }
}

输入demo.southyang.cn/eat查看配置结果

注: 目前我只用到了上述所列的内容,其他内容用到了再学

引用内容:

[1] https://blog.csdn.net/qq_39827677/article/details/113745095

[2] https://github.com/Mereithhh/van-nav文章来源地址https://www.toymoban.com/news/detail-779880.html

到了这里,关于Ubuntu20.04安装配置Nginx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu20.04中Docker安装与配置

    1、卸载可能存在的旧版本 2、更新apt包索引 显示“正在读取软件包列表… 完成” 3、安装以下包以使apt可以通过HTTPS使用存储库(repository) 显示“done.” 4、添加Docker官方的GPG密钥 显示“OK” 5、设置stable存储库 如果没有报错就正常进行下一步。显示“正在读取软件包列表… 完

    2024年02月05日
    浏览(55)
  • Linux系列---【Ubuntu 20.04安装KVM】

    1.安装kvm 2. 将当前用户添加至libvirt 、 kvm组 3.验证安装 4.启动libvert 至此,kvm安装完毕! 1.安装xrdp 2.查看ubuntu的ip 3.打开windows远程连接工具 登录成功后,记得修改登录密码。不然,系统一锁屏,就打不开了。通过这里输入原来ubuntu的root密码,解不了休眠锁。 1.安装virt-manager

    2024年02月16日
    浏览(65)
  • Linux学习之Ubuntu 20.04安装内核模块

    参考博客:Ubuntu20.04编译内核教程 sudo lsb_release -a 可以看到我当前的系统是 Ubuntu 20.04.4 , sudo uname -r 可以看到我的系统内核版本是 5.4.0-100-generic 。 sudo apt-get install -y libncurses5-dev flex bison libssl-dev 安装所需要的依赖。 sudo apt-get install linux-source 按两下 Tab ,看一下可以下载的源

    2024年02月15日
    浏览(83)
  • linux下ubuntu20.04的 libpcap安装

    Libpcap安装 方式一:下载官方安装包 需要先安装: 1、安装GCC: sudo apt-get install gcc-c++(由于我当前的环境docker下已安装了gcc,所以这一步跳过) 2、安装flex: sudo apt-get install flex 没有flex,直接安装libpcap会提示\\\"Your operating system’s lex is insufficient to compile libpcap\\\"错误; 3、安装

    2024年01月17日
    浏览(74)
  • Linux Ubuntu20.04深度学习环境快速配置命令记录

    1、更新系统包 2、安装显卡驱动 使用apt方式安装驱动,多数情况不容易成功, 使用一下方法更佳: 1.查看合适显卡的驱动版本 NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA NVIDIA GeForce 驱动程序官方提供下载最新版的 Geforce 驱动程序,可提升 PC 游戏体验和应用程序速度。更多关于更

    2024年02月09日
    浏览(59)
  • 20.04Ubuntu中SSH的安装及配置指南

     引言: SSH(Secure Shell)是一种加密协议,允许远程安全访问和管理计算机。在Ubuntu操作系统中,安装和配置SSH服务器是一项关键任务,为远程访问提供了安全可靠的连接。本文将向您介绍如何在Ubuntu中安装和配置SSH服务器。 在Ubuntu中配置SSH(Secure Shell)的作用是实现安全的

    2024年02月08日
    浏览(65)
  • Ubuntu20.04(linux)安装JDK1.8

    Ubuntu20.04安装JDK1.8 1.下载 : jdk-8u371-linux-x64.tar.gz 2.解压到指定目录 3.在/usr/lib/ 创建 jvm 文件夹,并将解压的jdk移动到/usr/lib/jvm(非root用户使用sudo) 4.打开/etc/profile,配置环境变量 vi /etc/profile(编辑文件) Shift + g 将光标定位到行尾 这个时候按一下 Insert 键,进入编辑模式 按Esc键 输

    2024年02月12日
    浏览(71)
  • ubuntu 20.04 4090 显卡驱动安装 深度学习环境配置

    准备工作: 换源 安装输入法:重启的步骤先不管(自选) sudo apt update sudo apt upgrade 禁用nouveau驱动(这个驱动是ubuntu开源小组逆向破解NVIDIA的开源驱动,与英伟达的原有驱动不兼容)执行完第2.3步,先不重启。 打开 软件和更新 , 选择 附加驱动,安装推荐驱动(第一个),点

    2024年02月16日
    浏览(52)
  • Ubuntu 20.04下安装配置Qt开发环境的步骤

    下面是在Ubuntu 20.04下安装配置Qt开发环境的步骤: 安装Qt Creator 在终端中输入以下命令以安装Qt Creator: 在终端中输入以下命令以安装Qt 5开发库: 安装g++和gcc编译工具 配置Qt Creator 打开Qt Creator,进入“Tools”菜单,选择“Options”,在弹出的对话框中选择“Build Run”,然后选择

    2024年02月15日
    浏览(52)
  • Linux(7)Ubuntu20.04 arm64安装Docker

    vi /etc/apt/sources.list 这个命令后面跟了几个软件包的名字,它们分别是: apt-transport-https:这个软件包允许apt使用HTTPS协议来访问软件源。 ca-certificates:这个软件包提供了一些受信任的证书颁发机构的证书,用来验证HTTPS连接的安全性。 curl:这个软件包提供了一个命令行工具,

    2024年02月10日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包