
简介
为了网站快速响应,经常需要将前端页面放在cdn上,此时就需要后端服务支持跨域访问,所以
记录一下在tengine上的配置,用于集中管理多个服务和支持服务的跨域访问设置。关于nginx的安装可以参照 这里
第一步 将配置文件进行分离
使用vi nginx.conf编辑nginx的配置文件,改成如下配置
| 12
 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配置如下
| 12
 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;
 }
 }
 }
 
 
 | 
更加深入的探索
在这里没有对安全性方面进行加强,如果网站需要更高安全性,可以根据实际需要在配置中增加安全性的相关配置。