亲手实践linux安装配置nginx

1,083 阅读2分钟

实践背景

我正在一个云服务构建一些前端项目,那这些项目需要部署和支持访问,另外有些依赖包希望能放云服务可以本地访问下载,不需要再从其它依赖库渠道下载,所以这时候需要搭建一个代理环境,nginx成为了首选。

nginx安装

安装前环境准备

在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel 如果没有安装的话,安装命令如下(也可以直接进行安装,如果已安装会提示已存在):

yum -y install pcre-devel zlib-devel openssl openssl-devel

呈现结果如下: image.png

nginx相关指令

查看nginx是否安装

```
 yum search nginx
```

image.png

安装nginx

 yum install -y nginx

image.png

查询nginx文件路径

whereis nginx

image.png

查看nginx配置文件地址

nginx -t

image.png

启动Nginx并设置开机自动运行

systemctl start nginx.service
systemctl enable nginx.service

image.png

安装成功访问

image.png

配置静态服务器

vi /etc/nginx/nginx.conf
# 找到http{...}
# 在http{}打括号中插入
# 如:
http{
    # 其他代码(原来就存在的代码)
    server {
        listen 80; # 端口 需要服务器开放端口
        # 域名绑定需要将域名解析A记录到改服务器ip
        server_name music.ncgame.cc; # 你的域名 如果需要ip访问请注释该行并改变端口
    
        location / { # 监听的路径
            root /www; # /www 就是刚刚创建的目录
            index index.html index.htm; # 默认入口
        }
    }
}

重启nginx

# 测试配置文件是否可用
# 显示成功 `test is successful` 即可执行下方命令,失败请查看具体原因
nginx -t


# 修改配置后重新加载生效
nginx -s  reload  
# 重新打开日志文件
nginx -s  reopen   

配置node项目绑定域名

一般是通过nginx代理实现绑定域名 配置:

server {
    listen 80; # 端口
    server_name blog.ncgame.cc; # 域名
    location / {
        proxy_pass http://0.0.0.0:3000;
        proxy_read_timeout 18000; # 设置超时
    }
}

HTTPS(SSL)配置

server {
    listen       443 ssl; # 端口
    server_name  blog.ncgame.cc;  # 域名

    ssl_certificate     /path/xxx.pem # 证书路径 pem or crt;
    ssl_certificate_key  /path/xxx.key; # 私钥

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        # 这里可以配置静态服务器 or 代理
    }
}
# http 自动跳转到 https
server{
    listen 80;
    server_name blog.ncgame.cc;
    rewrite ^/(.*)$ https://blog.ncgame.cc:443/$1 permanent;
}

访问特定文件夹内容

比如想访问home文件夹下的文件,可以如下所示: image.png 配置:

location /home {
    alias /home/;
    autoindex on;
}

其它(欢迎添加补充)

Vue 访问后刷新空白的问题

可能是由于VurRouter开启了HTML5 History 模式具体可查看VurRouter后端配置例子 需要在配置中添加一行 try_files $uri $uri/ /index.html; 例:

server {
    listen 80; # 端口 需要服务器开放端口
    # 域名绑定需要将域名解析A记录到改服务器ip
    server_name music.ncgame.cc; # 你的域名 如果需要ip访问请注释该行并改变端口

    location / { # 监听的路径
        root /www; # /www 就是刚刚创建的目录
        index index.html index.htm; # 默认入口
        try_files $uri $uri/ /index.html;
    }
}