简介
为了网站快速响应,经常需要将前端页面放在cdn上,此时就需要后端服务支持跨域访问,所以
记录一下在tengine上的配置,用于集中管理多个服务和支持服务的跨域访问设置。关于nginx的安装可以参照 这里
第一步 将配置文件进行分离
使用vi nginx.conf
编辑nginx
的配置文件,改成如下配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #user nobody; worker_processes 1;
error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; error_log "pipe:rollback logs/error_log interval=1d baknum=7 maxsize=2G";
pid logs/nginx.pid;
events { worker_connections 1024; #根据实际情况进行修改 }
http { include mime.types; default_type application/octet-stream; #设置日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; //对日志进行设置 access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main; sendfile on; keepalive_timeout 65; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 8m; tcp_nopush on; gzip on; //将所有的后端服务的配置都放在domain文件夹中管理 include domain/*.conf; }
|
第二步 创建单独的配置文件,以nacos.conf
为例
在nginx/conf
文件夹下创建domain
和 cert
文件夹,然后将nacos.conf放入
domain`文件夹中
- domain 存放单个服务的配置文件
- cert 如果网站是
https
,将相关证书放入cert
文件夹中
nacos.conf
配置如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| upstream nacos_server { server 127.0.0.1:8448 weight=1; server 127.0.0.1:8449 weight=2; } # http 强制跳转https server { listen 80; server_name nacos.bosong.online; rewrite ^ https://$http_host$request_uri? permanent; } server { listen 443 ssl; server_name nacos.bosong.online; charset utf-8; #单独的域名访问日志 access_log logs/config.access.log main; #放置证书文件 ssl_certificate cert/config.pem; ssl_certificate_key cert/config.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { #跨域配置-允许当前的域名访问 add_header Access-Control-Allow-Origin '$http_origin'; #允许携带凭证 add_header Access-Control-Allow-Credentials 'true'; #允许请求类型-根据实际情况自定义 add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS, PUT, DELETE'; #允许携带的请求头,根据网站实际情况修改 add_header Access-Control-Allow-Headers 'Cookie,Set-Cookie,x-requested-with,content-type,Authorization,accessToken,authorization,accesstoken'; #需要代理的后端服务,可负载均衡 proxy_pass http://nacos_server; #OPTIONS请求直接返回200或者204即可 if ($request_method = 'OPTIONS') { return 200; } } }
|
更加深入的探索
在这里没有对安全性方面进行加强,如果网站需要更高安全性,可以根据实际需要在配置中增加安全性的相关配置。