nginx配置前后端分离项目和资源服务及配置ssl证书
前景说明:现在web项目,前后端分离已经开始流行,而nginx项目部署非常重要。nginx核心功能主要有代理和负载均衡、http服务器。本文实现的是正式环境下部署,在阿里云服务器实现部署了,其他情况可参考。
一、安装nginx
文献参考地址:https://blog.csdn.net/qq_37184877/article/details/94616810
二、ssl 证书获取和配置
1.获取ssl证书
阿里云有免费一年可以,其他情况可参考:https://blog.csdn.net/sky_eyeland/article/details/94383082
2.配置nginx
官方文档:https://help.aliyun.com/knowledge_detail/95491.html
示例:
server {
listen 443;
#域名
server_name ****;
ssl on;
root html;
index index.html index.htm;
#证书路径 在安装目录 /usr/local/nginx下建了cret目录 放入了cert.pem和cert.key证书文件
ssl_certificate /usr/local/nginx/cert/cert.pem;
ssl_certificate_key /usr/local/nginx/cert/cert.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
}
二、配置前端项目和后端项目
server {
listen 80;
server_name ****;#域名或ip
# http强制跳转https地址
rewrite ^(.*)$ https://$host permanent;
location /{
root /webDome/dist; #前端项目路径(一般是打包的静态资源)
index index.html index.htm;
try_files $uri /index.html;
}
#配置后端项目转发 这里可以用负载均衡,如何配置可以查资料 这里配置两个后端项目意思
location /weixin {
proxy_pass http://127.0.0.1:5000;
}
location /web {
proxy_pass http://127.0.0.1:5000;
}
}
三、配置资源服务
server {
listen 3000;
#域名
server_name ****;
charset utf-8;
root /home/ftp;
include /etc/nginx/default.d/*.conf;
location ~ .*\.(gif|jpg|jpeg|png)$ {
expires 24h;
root /home/ftp;#指定图片存放路径
proxy_store on;
proxy_store_access user:rw group:rw all:rw;
proxy_temp_path /home/ftp;#图片访问路径
proxy_redirect off;
proxy_set_header Host 127.0.0.1;
client_max_body_size 10m;
client_body_buffer_size 1280k;
proxy_connect_timeout 900;
proxy_send_timeout 900;
proxy_read_timeout 900;
proxy_buffer_size 40k;
proxy_buffers 40 320k;
proxy_busy_buffers_size 640k;
proxy_temp_file_write_size 640k;
if ( !-e $request_filename)
{
proxy_pass http://127.0.0.1;#默认80端口
}
}
location / {
root /home/ftp;
autoindex on;
autoindex_localtime on;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
四、配置https
server {
listen 443;
#域名
server_name ****;
ssl on;
root html;
index index.html index.htm;
#证书路径 在安装目录 /usr/local/nginx下建了cret目录 放入了cert.pem和cert.key证书文件
ssl_certificate /usr/local/nginx/cert/cert.pem;
ssl_certificate_key /usr/local/nginx/cert/cert.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#静态资源路径和nginx转发接口 暂时可不配置,跟项目部署有关
location /{
root /webDome/dist;
}
location /weixin/ {
proxy_pass http://127.0.0.1:5000/;
}
location /web/ {
proxy_pass http://127.0.0.1:5000/;
}
location /res/ {
proxy_pass http://127.0.0.1:3000/;
}
}
前端访问:https://域名
后端:https://域名/web 或https://域名/weixin
资源服务:https://域名/res
原配置文件: