实践背景
我正在一个云服务构建一些前端项目,那这些项目需要部署和支持访问,另外有些依赖包希望能放云服务可以本地访问下载,不需要再从其它依赖库渠道下载,所以这时候需要搭建一个代理环境,nginx成为了首选。
nginx安装
安装前环境准备
在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel 如果没有安装的话,安装命令如下(也可以直接进行安装,如果已安装会提示已存在):
yum -y install pcre-devel zlib-devel openssl openssl-devel
呈现结果如下:
nginx相关指令
查看nginx是否安装
```
yum search nginx
```
安装nginx
yum install -y nginx
查询nginx文件路径
whereis nginx
查看nginx配置文件地址
nginx -t
启动Nginx并设置开机自动运行
systemctl start nginx.service
systemctl enable nginx.service
安装成功访问
配置静态服务器
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文件夹下的文件,可以如下所示:
配置:
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;
}
}