ubuntu上安装、卸载、配置nginx

一、安装 Nginx

1. 更新软件包列表
sudo apt update
2. 安装 Nginx
sudo apt install nginx -y
3. 验证安装
nginx -v
# 输出示例:nginx version: 1.18.0 (Ubuntu)
4. 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
5. 检查服务状态
sudo systemctl status nginx
# 正常应显示 "active (running)"
6. 可以浏览器中测试看看:ip地址:80

二、基础配置(把配置文件独立出来)

1. 配置文件结构
/etc/nginx/
├── nginx.conf          # 主配置文件
├── sites-available/    # 可用站点配置
├── sites-enabled/      # 已启用站点(符号链接)
├── conf.d/             # 附加配置
└── snippets/           # 可复用配置片段
2. 修改配置文件,将配置文件的目录独立出来
sudo vim /etc/nginx/nginx.conf

2.1 i进入编辑模式,把第一行user修改为root。找到"Virtual Host Configs"下添加一行include /root/xx/nginx_cfg/*.conf;然后:wq保存退出

/xx/nginx_cfg:是自己在root目录创建的文件夹;自己可自定义

3. 在创建的“/xx/nginx_cfg”目录里新建一个后缀名为conf的配置文件进行配置。
    server {
        listen       80;  #监听端口号,如果没有域名不要用80
        server_name  localhost; #域名(多个用空格分隔)
		charset utf-8;

        #静态文件处理
		location / {
            root   /root/html/shiyan-manager/dist; #网站根目录(前端代码打包在服务器位置)
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
            client_max_body_size 2048m;
        }
		
        #反向代理配置(指向本地应用)
		location /dev-api/ {
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 2048m;
			proxy_pass http://localhost:8080/; #转发到本地的8080端口(后端的端口号)
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
4.配置文件写完后,刷新配置,浏览器访问即可
sudo nginx -t  # 测试配置语法
sudo systemctl reload nginx

三、启动HTTPS

1.登录云服务器数字证书管理服务控制台,生成并下载SSL证书,选择Nginx服务器类型下载

2.把下载的证书上传到Linux服务器,位置自定义,可放在nginx目录

2.1执行以下命令,在Nginx目录下创建一个用于存放证书的目录。

cd /etc/nginx  #进入Nginx文件目录。或者自定义目录都行
mkdir cert  #创建证书目录,命名为cert。

2.2将证书文件和私钥文件上传到Nginx服务器的证书目录(/etc/nginx/cert)。

3.修改配置

server {
    listen 443 ssl;
    server_name example.com; #域名

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; #上传的证书
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.key; #上传的证书

    # 安全协议和加密套件
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers on;

    # HSTS(强制HTTPS)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    charset utf-8;

        #静态文件处理
		location / {
            root   /root/html/shiyan-manager/dist; #网站根目录(前端代码打包在服务器位置)
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
            client_max_body_size 2048m;
        }
		
        #反向代理配置(指向本地应用)
		location /dev-api/ {
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 2048m;
			proxy_pass http://localhost:8080/; #转发到本地的8080端口(后端的端口号)
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
server {
    listen 80;
    #填写证书绑定的域名
    server_name <yourdomain>;
    #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    rewrite ^(.*)$ https://$host$1;
    location / {
        index index.html index.htm;
    }
}
4.配置文件写完后,刷新配置,浏览器访问即可 
sudo nginx -t  # 测试配置语法
sudo systemctl reload nginx

、卸载 Nginx

1. 停止服务
sudo systemctl stop nginx
sudo systemctl disable nginx
2. 卸载软件包
sudo apt purge nginx nginx-common
3. 删除残留文件
sudo rm -rf /etc/nginx /var/log/nginx /var/www/html/*
sudo apt autoremove

、故障排查

问题现象解决方法
端口占用`sudo ss -tulnpgrep :80` → 结束冲突进程
配置语法错误sudo nginx -t 检查错误行
403 Forbidden检查目录权限:sudo chmod -R 755 /var/www
502 Bad Gateway确认后端服务是否运行,proxy_pass 地址是否正确

六、关键命令总结 

功能命令
测试配置sudo nginx -t
重新加载配置sudo systemctl reload nginx
查看访问日志sudo tail -f /var/log/nginx/access.log
检查运行中的配置sudo nginx -T

1. 所有的 Nginx 配置文件都在/etc/nginx/目录下

2. 主要的 Nginx 配置文件是/etc/nginx/nginx.conf

3. Nginx的启动文件:/sbin/nginx

4. Nginx 日志文件(access.log 和 error.log)定位在/var/log/nginx/目录下 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值