首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在ubuntu系统部署Nginx

在ubuntu系统部署Nginx

原创
作者头像
图难于其易
修改于 2023-11-17 00:02:27
修改于 2023-11-17 00:02:27
2.2K0
举报
文章被收录于专栏:读书笔记读书笔记

1 安装nginx

安装信息:

  • 登入终端:

主机:116.xxx.xxx.xx

端口:8123

用户名:root

密码:xxxxxx

  • 最终安装信息:

Nginx版本:1.19.8

Nginx存放目录:/usr/local/nginx

前端存放目录:/home/wyy/ai_html

SSL证书存放目录:/usr/local/nginx/sslkey

1.1 检查是否安装nginx

代码语言:shell
AI代码解释
复制
$ ps -ef | grep nginx
root     31450 31429  0 02:04 pts/2    00:00:00 grep --color=auto nginx  

检测到并未安装,下一步开始安装nginx。

1.2 安装nginx

1.1.1 安装依赖库

检查是否安装库命令,例如是否已安装zlib

代码语言:shell
AI代码解释
复制
$ dpkg -l | grep zlib

如果已经安装,可以跳过该依赖库的安装。

如果没有安装,则安装以下依赖库:

  • 安装gcc g++的依赖库
代码语言:shell
AI代码解释
复制
$ apt-get install build-essential
$ apt-get install libtool
  • 安装pcre依赖库
代码语言:shell
AI代码解释
复制
$ apt-get update
$ apt-get install libpcre3 libpcre3-dev
  • 安装zlib依赖库
代码语言:shell
AI代码解释
复制
$ apt-get install zlib1g-dev
  • 安装ssl依赖库
代码语言:shell
AI代码解释
复制
$ apt-get install openssl libssl-dev
1.1.2 安装nginx

下载安装包:

代码语言:shell
AI代码解释
复制
$ wget https://nginx.org/download/nginx-1.19.8.tar.gz

解压:

代码语言:shell
AI代码解释
复制
$ tar -zxvf nginx-1.19.8.tar.gz

解压后的文件夹重命名为nginx文件夹:

代码语言:shell
AI代码解释
复制
$ mv nginx-1.19.8 nginx

移动文件夹到ubuntu常见软件目录下:

代码语言:shell
AI代码解释
复制
$ mv nginx/ /usr/local/

进入目录:

代码语言:shell
AI代码解释
复制
$ cd /usr/local/nginx

配置命令:

代码语言:shell
AI代码解释
复制
$ ./configure --prefix=/usr/local/nginx --with-http\_gzip\_static\_module --with-http\_v2\_module --with-pcre --with-http\_ssl\_module --conf-path=/usr/local/nginx/conf/nginx.conf

编译:

代码语言:shell
AI代码解释
复制
$ make

安装:

代码语言:shell
AI代码解释
复制
$ make install

通过软连接,这样就可以直接使用 nginx 执行:

代码语言:shell
AI代码解释
复制
$ ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

测试是否安装成功:

代码语言:shell
AI代码解释
复制
$ nginx -V
nginx version: nginx/1.19.8
built by gcc 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 
built with OpenSSL 1.1.1  11 Sep 2018
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http\_gzip\_static\_module --with-http\_v2\_module --with-pcre --with-http\_ssl\_module --conf-path=/usr/local/nginx/conf/nginx.conf

安装nginx成功!

2 启动nginx

检查配置信息是否正确:

代码语言:shell
AI代码解释
复制
$ nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

以上结果显示,配置信息正常。

P.S. 如果显示如下信息:

代码语言:shell
AI代码解释
复制
nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
2016/09/13 19:08:56 [emerg] 6996#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)

是因为nginx/目录下没有logs文件夹,在/usr/local/nginx/目录执行如下命令可解决:

代码语言:shell
AI代码解释
复制
$ mkdir logs
$ chmod 700 logs

再次检测配置:

代码语言:shell
AI代码解释
复制
$ nginx -t

如果配置正常,则可以启动nginx:

代码语言:shell
AI代码解释
复制
$ nginx

访问端口确认是否成功启动nginx,在本项目中,访问 http://116.xxx.xxx.xx:80/:

Welcome to nginx!
Welcome to nginx!

出现如上结果,则已经成功启动nginx!

3 配置nginx

3.1.上传代码

通过FTP上传项目代码至规定的目录:/home/wyy,本项目中,前端代码存放在/home/wyy/ai_html/目录中。

3.2.配置nginx.conf

进入conf/目录:

代码语言:shell
AI代码解释
复制
$ cd /usr/local/nginx/conf

备份默认的nginx.conf为nginx.default.conf:

nginx.conf的内容如下:

代码语言:shell
AI代码解释
复制
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    # server {
    #     listen       80;
    #     server_name  localhost;

    #     #charset koi8-r;

    #     #access_log  logs/host.access.log  main;

    #     location / {
    #         root   html;
    #         index  index.html index.htm;
    #     }

    #     #error_page  404              /404.html;

    #     # redirect server error pages to the static page /50x.html
    #     #
    #     error_page   500 502 503 504  /50x.html;
    #     location = /50x.html {
    #         root   html;
    #     }
    # }
    include website/*.conf;
}

在当前目录新建website文件夹,然后添加ai.conf,配置本项目:

ai.conf的内容如下,端口为80:

代码语言:shell
AI代码解释
复制
server {
  listen 80;
  error_page  404 /index.html;
  client_max_body_size 100m;

  location / {
      root /home/wyy/ai_html; # 前端代码文件位置
      index index.html;
      try_files $uri $uri/ /index.html; # 解决vue刷新404的问题
  }
  location /api/ {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Headers' 'X-Requested-With';
    add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';
    add_header 'Cache-Control' 'no-cache';

    if ($request_method = 'OPTIONS') {
        return 200;
    }
    proxy_pass http://127.0.0.1:9999/; # 反向代理
    # rewrite ^/b/(.*)$ /$1 break;
  }

  location /knowledgeApi/ {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Headers' 'X-Requested-With';
    add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';
    add_header 'Cache-Control' 'no-cache';

    if ($request_method = 'OPTIONS') {
        return 200;
    }
    proxy_pass http://127.0.0.1:8888/; # 反向代理
    # rewrite ^/b/(.*)$ /$1 break;
  }
}

3.3.启动项目

检查配置是否正常:

代码语言:shell
AI代码解释
复制
$ nginx -t

如果正常,则热重载nginx:

代码语言:shell
AI代码解释
复制
$ nginx -s reload

刷新http://116.xxx.xxx.xx:80/可以看到配置指定站点。

3.4.配置证书和https

/usr/local/nginx/目录下创建sslkey目录,存放SSl证书:

配置https,修改ai.conf(具体配置需要看云服务器要求):

代码语言:shell
AI代码解释
复制
server {
  listen                  443 ssl; # SSL 默认访问端口号为 443
  server_name             127.0.0.1; # 绑定证书的域名
  ssl_certificate         /usr/local/nginx/sslkey/smarthome_server.crt;
  ssl_certificate_key     /usr/local/nginx/sslkey/smarthome_server.key;
  error_page  404 /index.html;
    
  location / {
    # ...
  }
  location /api/ {
    # ...
  }
  location /knowledgeApi/ {
    # ...
  }
}

# HTTP请求自动跳转HTTPS
server {
  listen 80;
  error_page  404 /index.html;
  client_max_body_size 100m;
  return  301 https://$server_name$request_uri; # 把HTTP的域名请求转成HTTPS
}

3.5.启动项目

代码语言:shell
AI代码解释
复制
$ nginx -t
$ nginx -s reload

如果网页地址栏出现小锁标志,表示证书已经安装成功。

3.6.防火墙设置

代码语言:shell
AI代码解释
复制
$ sudo ufw allow 'Nginx HTTP' # 此配置文件仅打开端口80
$ sudo ufw allow 'Nginx HTTPS' # 此配置文件仅打开端口443

# 输入以下命令以启动防火墙
$ sudo ufw enable   # 开启
$ sudo ufw disable    # 关闭

# 输入以下命令以查看防火墙状态
$ sudo ufw status    # 查看
# inactive状态是防火墙关闭状态 active是开启状态

3.7 配置gzip

代码语言:shell
AI代码解释
复制
server{
    gzip on; # 开启gzip
    gzip_buffers 32 4K; # 设置用于处理请求压缩的缓冲区数量和大小,使用默认值即可
    gzip_comp_level 6; # 压缩等级【1-9】,等级越高压得越小,越消耗GPU计算资源
    gzip_min_length 1k; # 当文件大于等于1k时,开始压缩
    gzip_types application/javascript text/css text/xml; # 不应压缩图片、MP3、MP4类型:压缩率小,太费GPU资源
    gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
    gzip_vary on; # 增加响应头”Vary: Accept-Encoding”
    gzip_proxied any; # Nginx做反向代理时,无条件压缩所有结果数据
}

重启nginx后,查看网页文件的响应头信息:

Content-Encoding:gzip 说明开启了gzip压缩;

Transfet-Encoding:chunked 说明压缩后分块传输。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue的Nginx前端代理配置
当用vue开发好前端需要打包时,一般都需要配置下代理方便访问后台接口,避免出现找不到链接或者跨域问题。
杨永贞
2022/01/07
2.4K0
nginx服务器添加rtmp模块支持视频推流
注:Nginx服务器默认安装完成,只添加nginx-rtmp-module模块和nginx-http-flv-module模块,如果没有安装nginx服务,请参考 nginx安装
请叫我师哥
2021/10/25
4.2K3
nginx服务器添加rtmp模块支持视频推流
超详细 Nginx 极简教程,傻瓜一看也会!
Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
Java技术栈
2018/12/13
8530
nginx简易教程
nginx简易教程 概述 什么是nginx? Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 什么是反向代理? 反向代理(
静默虚空
2018/01/05
1.6K0
nginx简易教程
在Linux Nginx配置HTTPS
一、公钥和私钥的获取 可以购买,可以自己生成,本文假设你已经有了公钥和私钥。 公钥和私钥的文件,欢迎访问http://yimian.me体验我们的产品 二、把SSL证书中的公钥和私钥放到服务器中的Ng
黄小怪
2018/05/21
3K0
聊聊Nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好
用户3467126
2019/07/03
4360
nginx简易教程
Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
lyb-geek
2018/07/26
1.1K0
nginx简易教程
Nginx安装配置及使用
-bash:warning:setlocale:LC_CTYPE:cannot change locale(en_US.UTF-8):Nosuch fileordirectory
create17
2018/12/18
2.1K0
Nginx安装配置及使用
nginx 总结
1. Nginx无法启动解决方法 在查看到logs中报了如下错误时: 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions) 是因为80端口出现了冲突 2. Weight 和ip_hash 在负载均衡均衡模块中upstream的 Weight是可以把请求的链接优先访问该服务 Ip_hash会去将客户端转发到一个可用的服务器上 如果服务器不可用需
小小科
2018/05/02
1.6K0
nginx 总结
Linux中Nginx配置域名访问多个项目解决方案
首先是系统环境:CentOS7,Nginx版本:1.62(如需其他版本自行到官网下载)
芈亓
2022/06/17
3.9K0
Linux中Nginx配置域名访问多个项目解决方案
编译Nginx服务部署静态网站
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件 (IMAP/POP3) 代理服务器,并在一个BSD-like协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.
王瑞MVP
2022/12/28
1.9K0
Nginx配置文件 - Java技术债务
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx发送信号,平滑重启!平滑重启命令:kill -HUP 主进程号或者进程号文件路径或者使用/usr/local/nginx/sbin/nginx -s reload
Java技术债务
2024/06/21
2390
Nginx配置文件 - Java技术债务
Nginx学习实践&总结
Nginx 是一个异步框架的 Web 服务器,也可以用作反向代理,负载平衡器 和 HTTP 缓存。
不愿意做鱼的小鲸鱼
2022/09/26
5520
Nginx学习实践&总结
Ubuntu 安装 Tengine、申请 SSL 证书、配置 gzip 、http2.0 教程
本文将讲述如何在腾讯云云服务器中安装 Tengine ,并配置 gzip 、http2.0等模块。
lqmeta
2020/07/06
1.8K0
Ubuntu 安装 Tengine、申请 SSL 证书、配置 gzip 、http2.0 教程
Nginx安装与使用
1 : wget下载: http://nginx.org/download/nginx-1.4.2.tar.gz
HUC思梦
2020/09/03
6410
Nginx-基础总结(上)
1.proxy_set_header :在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息。 2.proxy_connect_timeout:配置Nginx与后端代理服务器尝试建立连接的超时时间。 3.proxy_read_timeout : 配置Nginx向后端服务器组发出read请求后,等待相应的超时时间。 4.proxy_send_timeout:配置Nginx向后端服务器组发出write请求后,等待相应的超时时间。 5.proxy_redirect :用于修改后端服务器返回的响应头中的Location和Refresh。
云计算小黑
2022/12/28
5230
ubuntu下nginx+php5的部署
ubuntu下nginx+php5环境的部署和centos系统下的部署稍有不同,废话不多说,以下为操作记录: 1)nginx安装 root@ubuntutest01-KVM:~# sudo apt-get update && sudo apt-get upgrade root@ubuntutest01-KVM:~# sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev build-essential openssl libssl0.
洗尽了浮华
2018/01/23
9320
ubuntu下nginx+php5的部署
Nginx代理服务器环境快速搭建部署
步骤 01.nginx 配置文件准备执行如下命令写入到/app/nginx/conf/nginx.conf文件中
全栈工程师修炼指南
2022/09/29
9690
Nginx代理服务器环境快速搭建部署
Nginx的安装部署以及使用
nginx是现在互联上非常流行的高性能的 Web 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
星哥玩云
2022/07/28
1K0
nodejs与nginx的完美搭配
node自己本身可以作为服务器进行驱动,但是node本身对文件的处理能力并不是很好,所以当我们的生产环境中应尽量使用nginx来处理静态的资源以及反向代理,同时也解决了node分布式以及负载均衡的相关问题。
用户1065635
2019/03/21
9.6K0
相关推荐
Vue的Nginx前端代理配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档