当前位置: 首页 > news >正文

服务器部署,Nginx安装和配置

Nginx简介

Nginx是一款轻量级和高性能的web服务器、反向代理服务器和电子邮件代理服务器。你可以使用Nginx实现网页的部署,解决跨域问题实现邮件服务器,甚至Nginx也可以实现音视频推流拉流服务器,Nginx可以实现的功能远超你的想象,凭借着其轻量高效以及配置简单兼容性好等一系列优点,被各大网站、厂商部署服务器和网页使用。

就比如利用Nginx部署音视频服务器,我后面就会出一篇相关的博客

利用Nginx解决浏览器访问跨域问题已发布,详情地址:https://blog.csdn.net/weixin_64647426/article/details/137979439

Nginx是基于C语言开发的,如果对源码感兴趣可以去阅读一下,仓库地址:https://github.com/nginx/nginx

Nginx安装&配置

安装Nginx一般有两种方式,分别为源码编译安装和软件源安装

我们这里主要介绍使用软件源安装,这里是基于Ubuntu系统进行安装命令介绍

安装命令:sudo apt install nginx

安装成功后启动可以通过systemctl或者service命令进行启动

  • 启动Nginx:service nginx start

  • 停止Nginx:service nginx stop

  • 查看Nginx状态:service nginx status

本人第一次启动时曾出现的问题

第一次安装Nginx,然后使用service进行启动时,显示Failed to start ngixn.service: Unit ngixn.service not found.,不知道什么问题,但是执行sudo systemctl stop nginx.servicesudo systemctl start nginx.service这个之后service就好使了

安装就介绍完了,下面我们来介绍一下Nginx的配置

Nginx主要是基于配置文件来进行功能实现的,在Nginx的安装目录下(apt安装目录:/etc/nginx)存在着Nginx的配置文件nginx.conf,这里面是Nginx安装完后的基础配置,可以看到Nginx默认监听了80端口,我们也可以通过浏览器访问本机的IP地址,也可以看到Nginx的默认静态页面,如果看不到可以是Nginx没启动或者防火墙有拦截

Nginx的配置文件书写类型与键值对的形式,比如说用Nginx部署一个HTTP的链接,就是下面的配置方法

http {# ...配置项
}

下面说一下关于部署服务器一些常用的字段,最后我会给出Nginx简单部署web网页的例子供大家整合参考:

  • include字段

    该字段主要用于去引入一个配置文件,支持通配符的设定

    书写格式:

http {include [路径];
}
  • server字段

    该字段主要是囊括要监听的端口,以及当端口来消息时的处理方式,都需要在这个字段下书写

    书写格式:

http {server {# ...配置项}
}
  • listen字段

    该字段用于告诉Nginx要监听的端口

    书写格式:

http {server {listen 80;  # 监听80端口# ...配置项}
}
  • location字段

    该字段主要用于对HTTP链接URL的处理,可以在这里对指定的URL字段进行进一步的处理

    书写格式:

http {server {listen 80;  # 监听80端口location /api/ {# url为api时会进行下面的特殊处理,形如http://127.0.0.1:80/api/# ...配置项}# ...配置项}
}
  • root字段

    该字段用于指明,当前访问端口的web页面在服务器上存放位置的目录,通常配合index字段一起使用

    书写格式:

http {server {listen 80;  # 监听80端口location / {root /webfile/backdist;  # 指明web页面的路径# ...配置项}# ...配置项}
}
  • index字段

    该字段主要用于在web页面目录下面,指明页面访问的索引文件

    书写格式:

http {server {listen 80;  # 监听80端口location / {root  /webfile/backdist;  # 指明web页面的路径index index.html;         # 指明访问页面的索引文件# ...配置项}# ...配置项}
}
  • proxy_pass字段

    该字段用于配置反向代理所有,可以用其解决浏览器端跨域的问题,如果你在某个location下配置了反向代理,则Nginx转发这个请求的时候会自动将与之相关的URL进行去除然后进行转发

    书写格式:

http {server {listen 80;  # 监听80端口location / {root  /webfile/backdist;  # 指明web页面的路径index index.html;         # 指明访问页面的索引文件# ...配置项}location /api/ {proxy_pass http://127.0.0.1:9595/; # 反向代理到本地的9595端口}# ...配置项}
}
  • add_header字段

    该字段可以在http请求的应答包中添加指定的头部字段

    书写格式:

http {server {listen 80;  # 监听80端口location / {root  /webfile/backdist;  # 指明web页面的路径index index.html;         # 指明访问页面的索引文件# ...配置项}location /api/ {add_header 'Access-Control-Allow-Origin' '*';  # 书写格式:add_header ['参数名'] ['参数值'];add_header 'Access-Control-Allow-Headers' 'X-Requested-With';add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';add_header 'Cache-Control' 'no-cache';proxy_pass http://127.0.0.1:9595/; # 反向代理到本地的9595端口}# ...配置项}
}

上面介绍了Nginx关于配置HTTP链接常用的字段,接下来我会给出一个完整的Nginx配置文件方便大家参考学习

nginx.conf配置文件

user root;
worker_processes  auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;events {worker_connections  768;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;sendfile       on;tcp_nopush     on;types_hash_max_size	2048;gzip  on;# 配置图片资源请求端口server {listen	 90;server_name	 0.0.0.0;location /image/ {alias /var/www/example/img/;autoindex on;}}include website/*.conf;  # 引入web网页配置文件
}

./website/web.conf配置文件

server {listen               80;error_page           404 /index.html;client_max_body_size 100m;include              mime.types;default_type         application/octet-stream;sendfile	           on;keepalive_timeout	   65;location / {root      /root/projects/web/pingweidist; # 前端代码文件位置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:9595/; # 反向代理}# 解决图片资源访问跨域问题location /imageApi/ {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:90/; # 反向代理}
}

到这里Nginx的安装和配置就介绍完了,注意本篇文章只是对Nginx的使用进行了初步的介绍,如果大家想获取某一部分更加详细的配置介绍,可以有针对性的查询或者查看官方资料进行了解

感谢观看学习,大佬们多多指点,愿明天的自己会感谢当下的努力!!!!

http://www.xdnf.cn/news/198181.html

相关文章:

  • 思维链理解汇总
  • 美团社招一面
  • 2025天津二类医疗器械经营备案攻略
  • AI 边缘盒子:智能与效率的边缘先锋
  • 生成对抗网络(Generative Adversarial Nets,GAN)
  • 知识付费平台推荐及对比介绍
  • Nacos源码—1.Nacos服务注册发现分析一
  • Coding Practice,48天强训(26)
  • 空间计算:开启人机交互新纪元的下一代技术范式
  • 安卓主题换肤功能
  • 安卓基础(强制转换)
  • 社交电商和泛娱乐平台出海南美市场支付方式与策略
  • ASP.NET MVC​ 入门指南四
  • 【quantity】3 Unit 物理量计算库(quantity.rs)
  • c语言的指针详解
  • js补环境工具使用技巧、补环境实例、重点环境检测点详解
  • Qt开发:XML文件的写入与读取
  • AI与机器人外科手术:如何用智能化技术提升手术精度与安全性?
  • 【android bluetooth 协议分析 06】【l2cap详解 10】【通过avdtp连接流程,感受l2cap通道的生命周期变化】
  • [JavaScript]对象关联风格与行为委托模式
  • WSL释放空间
  • ‌wangEditor 所有菜单项分类、说明及隐藏方法
  • Java项目场景题深度解析
  • Termux - Android终端应用与Linux环境
  • Java读Excel:解析阿里云easyExcel导入文件的行号
  • vmare pro安装报错用户在命令行上发出了EULAS_AGREED=1,表示不接受许可协议的错误解决方法
  • 高压开关柜局部放电信号分析系统
  • C/C++链表的常用操作实现
  • three.js后处理原理及源码分析
  • HTML5好看的水果蔬菜在线商城网站源码系列模板7