文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Ubuntu20.04安装配置Nginx

2023-08-20 16:19

关注

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

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

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

服务器: 阿里云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: POODLEssl_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 -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]

如果添加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://blog.csdn.net/qq_45951779/article/details/128969250

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯