@[toc](Nginx 服务器配置)
CentOS 7.5 环境下安装 Nginx
记录 Linxu 云服务器各种环境部署的点点滴滴~
一、下载 Nginx
1.1 安装包安装 Nginx
安装步骤自行百度即可,比如菜鸟教程跟着步骤一步一步走,但是相对麻烦
1.2 包管理工(yum)具直接安装 Nginx
- 安装
yum install nginx - 使用命令
nginx # 启动 - 使用平台的公网 ip 即可看看是否有界面,有的话就安装成功
它会默认产生界面,如果你想要它显示指定产生的网站,需要手动配置
二、进入安装目录,修改服务器配置
- 进入目录
cd /etc/nginx - 打开 nginx.conf 的配置文件 和 nginx.conf.default,改一下网页显示的默认路径即可
vim nginx.conf # 要配置的第一个文件vim nginx.conf.default# 然后输入 i,表示插入模式,之后的往下看
- 或者将如下两个文件拖至本地

- 找到 Server 一项

- 为了保险起见,两个文件都稍微配置一下即可
- 比如我的静态 html 文件放在 root 目录里
`我就可以填写 root: /root/html` # 这里一定要填写目录,建议写 `绝对路径`index: index.html # 这里填写你要第一展示的页面,最好一个都不要改
- 我的目录结构如下

- 然后重启 Nginx
nginx -s reload - 大功告成,成功看到了我自己编写的界面

三、Nginx 命令操作
- 服务器重启命令
nginx -s reload - 启动服务器
nginx - 其他的服务遇到了再添加8,哈哈哈
四、nginx 配置 https 服务
4.1 为你的服务器申请 https 证书
我的服务器是在 腾讯云购买的,所以就可以直接在腾讯云申请的,所以我自然是在 腾讯云下申请的免费 https 的证书。申请好了下载下来是这样的

点开 nginx ,这两个文件等会要通过 xftp 上传上去的
4.2 打开 linux 服务器中 nginx 的目录下
一般是通过 yum 或者 apt-sudo 安装的 nginx 的目录会在 /etc/nginx 中,然后打开我们的 ftp 工具,进入到 /etc/nginx 目录下,将上面的 两个文件上传上去

4.3 文件上传了之后,回到终端
- 输入
vim nginx.conf - 然后输入 i ,进入文本插入模式
- 把 端口为 443 部分的配置全部打开

4. 改完这些配置之后,按下 esc
5. 然后输入 :wq 表示退出并保存,然后按下回车即可
6. 然后我们重启 nginx : nginx -s reload
7. 然后访问我们的服务器
成功了!!!
4.4 http 强制转换 https

之前在群里资讯过大佬。大佬说,http 转 https 不建议使这样处理,应该重写
rewrite ^(.*)$ https://$host$1 permanent;
五、Nginx 反向代理配置 (2020 5 24 更新)
反向代理是这个什么东西,网上有很多科普,大家可以简单了解一下即可。
以我个人的理解来说
就是把其他端口或者服务器的服务反向代理至某个特定的端口,这样的话,别人就感觉不到这其实是其他地方地方提供的一个服务,这么说可能不是很好理解。
就以我搭建的项目来说,我在服务器上 127.0.0.1:2999 处开启另一个 http 服务,也就说,这个服务我可以在外网以 www.xxxx.xxx:2999 直接访问。但是我不希望别人通过端口访问我的项目,我可以让别人通过路径访问我特定的项目,我就可以在 nginx.conf 做如下配置
- 添加指定的服务,并配置服务地址
我们定义的服务名称为 node_server, 它代表的就是 127.0.0.1:3030 上的服务
# 这个服务要写在 nginx.conf 的 server 外面upstream node_server {server 127.0.0.1:3030;}
- 反向代理服务
我们在 server 路径下,配置 location,用来指定我们服务的访问路径的
# 配置要访问的路径location /shop/ {proxy_pass http://node_server/; # 配置代理的服务# 一般情况不用加下面的,如果你的项目是前后端分离的,就要加下面的这些proxy_read_timeout 600s;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host:$server_port;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#解决https请求http资源不可用的情况add_header Content-Security-Policy upgrade-insecure-requests;# expires定义用户浏览器缓存的时间为1天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力expires 30d;# 指定项目资源路径root /home/node/vue_shop_server/dist;index index.html index.htm;# try_files $uri $uri/ /index.html =404;}# 解决代理的资源无法访问的情况location ~ .*\.(js|css|img|png|jpg)$ {proxy_pass http://127.0.0.1:3030;}
