服务器部署,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.service
、sudo 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的使用进行了初步的介绍,如果大家想获取某一部分更加详细的配置介绍,可以有针对性的查询或者查看官方资料进行了解
感谢观看学习,大佬们多多指点,愿明天的自己会感谢当下的努力!!!!