Ubuntu20.04安装Nginx

本文最后更新于 2024年7月5日 下午

安装

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

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

查看文件结构

1
2
# 查看文件结构
tree /etc/nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
ubuntu@VM-16-2-ubuntu:~$ 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

6 directories, 18 files

配置文件内容

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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/*;
}

要注意的是,在/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
1
2
3
4
5
6
7
# 检查配置文件是否有误
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

配置静态服务器

将文件上传到/var/www/html,如果有多个文件,可以新建多个文件,并在 nginx.conf 中配置,并重启服务。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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/;
# }
}

配置域名

将购买好的域名配置到服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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/;
# }
}

配置https

为网站配置https

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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/;
# }
}


Ubuntu20.04安装Nginx
https://dev.dgdream.online/2024/07/04/Ubuntu20.04安装Nginx/
作者
执念
发布于
2024年7月4日
更新于
2024年7月5日
许可协议