@[toc](Nginx 服务器配置)

CentOS 7.5 环境下安装 Nginx

记录 Linxu 云服务器各种环境部署的点点滴滴~

一、下载 Nginx

1.1 安装包安装 Nginx

下载 Nginx

安装步骤自行百度即可,比如菜鸟教程跟着步骤一步一步走,但是相对麻烦

1.2 包管理工(yum)具直接安装 Nginx

  1. 安装
    yum install nginx
  2. 使用命令
    nginx # 启动
  3. 使用平台的公网 ip 即可看看是否有界面,有的话就安装成功

它会默认产生界面,如果你想要它显示指定产生的网站,需要手动配置

二、进入安装目录,修改服务器配置

  1. 进入目录
    cd /etc/nginx
  2. 打开 nginx.conf 的配置文件 和 nginx.conf.default,改一下网页显示的默认路径即可
  1. vim nginx.conf # 要配置的第一个文件
  2. vim nginx.conf.default
  3. # 然后输入 i,表示插入模式,之后的往下看
  1. 或者将如下两个文件拖至本地
    CentOS 7 搭建 Nginx 环境 - 图1
  2. 找到 Server 一项

CentOS 7 搭建 Nginx 环境 - 图2

  1. 为了保险起见,两个文件都稍微配置一下即可
  2. 比如我的静态 html 文件放在 root 目录里
  1. `我就可以填写 root: /root/html` # 这里一定要填写目录,建议写 `绝对路径`
  2. index: index.html # 这里填写你要第一展示的页面,最好一个都不要改
  1. 我的目录结构如下
    CentOS 7 搭建 Nginx 环境 - 图3
  2. 然后重启 Nginx
    nginx -s reload
  3. 大功告成,成功看到了我自己编写的界面
    CentOS 7 搭建 Nginx 环境 - 图4

三、Nginx 命令操作

  1. 服务器重启命令
    nginx -s reload
  2. 启动服务器
    nginx
  3. 其他的服务遇到了再添加8,哈哈哈

四、nginx 配置 https 服务

nginx 配置 https 服务参考

4.1 为你的服务器申请 https 证书

我的服务器是在 腾讯云购买的,所以就可以直接在腾讯云申请的,所以我自然是在 腾讯云下申请的免费 https 的证书。申请好了下载下来是这样的

CentOS 7 搭建 Nginx 环境 - 图5
点开 nginx ,这两个文件等会要通过 xftp 上传上去的
CentOS 7 搭建 Nginx 环境 - 图6

4.2 打开 linux 服务器中 nginx 的目录下

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

CentOS 7 搭建 Nginx 环境 - 图7

4.3 文件上传了之后,回到终端

  1. 输入 vim nginx.conf
  2. 然后输入 i ,进入文本插入模式
  3. 把 端口为 443 部分的配置全部打开

CentOS 7 搭建 Nginx 环境 - 图8
4. 改完这些配置之后,按下 esc
5. 然后输入 :wq 表示退出并保存,然后按下回车即可
6. 然后我们重启 nginx : nginx -s reload
7. 然后访问我们的服务器
CentOS 7 搭建 Nginx 环境 - 图9
成功了!!!

4.4 http 强制转换 https

CentOS 7 搭建 Nginx 环境 - 图10
之前在群里资讯过大佬。大佬说,http 转 https 不建议使这样处理,应该重写
CentOS 7 搭建 Nginx 环境 - 图11

  1. rewrite ^(.*)$ https://$host$1 permanent;

五、Nginx 反向代理配置 (2020 5 24 更新)

反向代理是这个什么东西,网上有很多科普,大家可以简单了解一下即可。

以我个人的理解来说

就是把其他端口或者服务器的服务反向代理至某个特定的端口,这样的话,别人就感觉不到这其实是其他地方地方提供的一个服务,这么说可能不是很好理解。

就以我搭建的项目来说,我在服务器上 127.0.0.1:2999 处开启另一个 http 服务,也就说,这个服务我可以在外网以 www.xxxx.xxx:2999 直接访问。但是我不希望别人通过端口访问我的项目,我可以让别人通过路径访问我特定的项目,我就可以在 nginx.conf 做如下配置

  1. 添加指定的服务,并配置服务地址
    我们定义的服务名称为 node_server, 它代表的就是 127.0.0.1:3030 上的服务
  1. # 这个服务要写在 nginx.conf 的 server 外面
  2. upstream node_server {
  3. server 127.0.0.1:3030;
  4. }
  1. 反向代理服务
    我们在 server 路径下,配置 location,用来指定我们服务的访问路径的
  1. # 配置要访问的路径
  2. location /shop/ {
  3. proxy_pass http://node_server/; # 配置代理的服务
  4. # 一般情况不用加下面的,如果你的项目是前后端分离的,就要加下面的这些
  5. proxy_read_timeout 600s;
  6. proxy_set_header X-Real-IP $remote_addr;
  7. proxy_set_header Host $host:$server_port;
  8. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9. #解决https请求http资源不可用的情况
  10. add_header Content-Security-Policy upgrade-insecure-requests;
  11. # expires定义用户浏览器缓存的时间为1天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
  12. expires 30d;
  13. # 指定项目资源路径
  14. root /home/node/vue_shop_server/dist;
  15. index index.html index.htm;
  16. # try_files $uri $uri/ /index.html =404;
  17. }
  18. # 解决代理的资源无法访问的情况
  19. location ~ .*\.(js|css|img|png|jpg)$ {
  20. proxy_pass http://127.0.0.1:3030;
  21. }