【Nginx配置域名以及ssl证书】
/usr/local/nginx/conf 下创建 ssl 目录用于存储证书,方便引用和查找
配置代理转发
编辑 /usr/local/nginx/conf/nginx.conf 配置文件,配置代理转发
user root;worker_processes 2;
#worker_cpu_affinity 01 10;
#error_log logs/error.log;
#pid /app/nginx/conf/nginx.pid;
#worker_rlimit_nofile 65535;events {use epoll;worker_connections 10240;
}http {# --起始;这个是基础配置,可以直接复制不用修改include mime.types;default_type application/octet-stream;server_tokens off;gzip on;gzip_min_length 1k;gzip_buffers 16 8k;gzip_http_version 1.1;gzip_comp_level 2;gzip_types text/css text/xml application/javascript application/atom+xml application/rss+xml text/plain application/json application/x-javascript application/xml text/javascript;gzip_disable "MSIE [0-6]\.";gzip_vary on;server_names_hash_bucket_size 128;client_header_buffer_size 1k;large_client_header_buffers 4 8k;client_max_body_size 6G;client_body_timeout 5;client_header_timeout 20;open_file_cache max=65535 inactive=20s;open_file_cache_valid 30s;open_file_cache_min_uses 2;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;proxy_http_version 1.1;proxy_buffer_size 16k;proxy_buffers 8 1M;proxy_busy_buffers_size 2M;rewrite_log on;proxy_connect_timeout 600s;#proxy_connect_read_timeout 600s;#proxy_connect_send_timeout 600s;client_body_buffer_size 512k;proxy_max_temp_file_size 5120m;proxy_temp_file_write_size 1M;proxy_buffering off;proxy_request_buffering off;#proxy_temp_path /app/servers/nginx/proxy_temp;#proxy_cache_path /app/servers/nginx/proxy_temp/cache levels=2:2:2 keys_zone=cache_go:200m inactive=5d max_size=7g;#log_format access '$time_iso8601|$http_x_forwarded_for|$remote_addr|$http_host|$request_time|'# '$upstream_response_time|"$request"|$status|$body_bytes_sent|$request_length|'# '"$http_referer"|"$http_user_agent"|$upstream_addr|"$http_cookie"| $upstream_cache_status |';#access_log logs/access_http.log access;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;send_timeout 600;# --结束;这个是基础配置,可以直接复制不用修改# 配置WSS使用map $http_upgrade $connection_upgrade {default upgrade;'' close;}# 配置upstream模块,需要转发的内网IP和端口地址upstream a_server_web {server 198.16.0.100:9200 max_fails=3 fail_timeout=30s;}upstream b_server_web {server 198.16.0.128:9300 max_fails=3 fail_timeout=30s;}upstream c_server_web {server 198.16.0.99:9400 max_fails=3 fail_timeout=30s;}# 这个是默认的http配置,不用改动(具体看项目需求,这里只做https的教程)server {listen 80;server_name localhost;rewrite ^(.*)$ https://$host$1 permanent;#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}# 配置a_server、b_server的https代理转发server {# 指定SSL访问端口,用于域名申请时映射的端口listen 8100 ssl;# 配置域名+端口地址server_name ttcs.wser.com:12510;# 域名的SSL证书ssl_certificate /usr/local/nginx/conf/ssl/ttcs.wser.com.pem;# 域名的SSL私钥ssl_certificate_key /usr/local/nginx/conf/ssl/ttcs.wser.com.key;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;root html;index index.html index.htm;# a_server-小程序接口,小程序不能用路由分转接口,所以每个域名只能对应一个无路由的后端接口提供给单个小程序使用location / {# 这个转接的是内网服务a_server服务的后端统一网关端口proxy_pass http://198.16.0.100:9201/;}# a_server-前端location /a_web/ {proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-real-ip $remote_addr;proxy_set_header Host $host;proxy_buffering off;# 这里的路径就是上面配置的upstream模块proxy_pass http://a_server_web/;}# a_server-静态资源,这个配置是前端的静态图片之类的文件# 这里需要前端配合将生成的静态资源文件夹(默认为assets)改为 a_staticlocation ~* ^/a_static/.*\.(gif|jpg|jpeg|bmp|png|svg|ico|otf|ttf|txt|js|css)$ {proxy_pass http://a_server_web;expires 12h;}# a_server-后端,通过这个访问地址可以进行上传文件之类的操作# 这里需要前端配合将调用后端的路由api改成b_api# 同时,在内网使用Nginx部署前端服务时,调用后端的路由解析也应该是 b_apilocation ^~ /a_api/ {# 这里是后端的统一网关端口proxy_pass http://198.16.0.100:9201/;}# b_server-前端location /b_web/ {proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-real-ip $remote_addr;proxy_set_header Host $host;proxy_buffering off;# 这里的路径就是上面配置的upstream模块proxy_pass http://b_server_web/;}# b_server-静态资源,这个配置是前端的静态图片之类的文件# 这里需要前端配合将生成的静态资源文件夹(默认为assets)改为 b_staticlocation ~* ^/b_static/.*\.(gif|jpg|jpeg|bmp|png|svg|ico|otf|ttf|txt|js|css)$ {proxy_pass http://b_server_web;expires 12h;}# b_server-后端,通过这个访问地址可以进行上传文件之类的操作# 这里需要前端配合将调用后端的路由api改成b_api# 同时,在内网使用Nginx部署前端服务时,调用后端的路由解析也应该是 b_apilocation ^~ /b_api/ {# 这里是后端的统一网关端口proxy_pass http://198.16.0.128:9301/;}}# 配置c_server的https代理转发server {# 指定SSL访问端口,用于域名申请时映射的端口listen 8200 ssl;# 配置域名+端口地址server_name lttc.wser.com:11880;# 域名的SSL证书ssl_certificate /usr/local/nginx/conf/ssl/lttc.wser.com.pem;# 域名的SSL私钥ssl_certificate_key /usr/local/nginx/conf/ssl/lttc.wser.com.key;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;root html;index index.html index.htm;# c_server-前端location /c_web/ {proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-real-ip $remote_addr;proxy_set_header Host $host;proxy_buffering off;# 这里的路径就是上面配置的upstream模块proxy_pass http://c_server_web/;}# c_server-静态资源,这个配置是前端的静态图片之类的文件# 这里需要前端配合将生成的静态资源文件夹(默认为assets)改为 c_staticlocation ~* ^/c_static/.*\.(gif|jpg|jpeg|bmp|png|svg|ico|otf|ttf|txt|js|css)$ {proxy_pass http://c_server_web;expires 12h;}# c_server-后端,通过这个访问地址可以进行上传文件之类的操作# 这里需要前端配合将调用后端的路由api改成c_api# 同时,在内网使用Nginx部署前端服务时,调用后端的路由解析也应该是 c_apilocation ^~ /c_api/ {# 这里是后端的统一网关端口proxy_pass http://198.16.0.99:9401/;}# c_server-后端WebSocket,因为是https所有要使用wss做链接location ^~ /c_wss/ {proxy_http_version 1.1;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_read_timeout 36000s;proxy_send_timeout 36000s;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Host $server_name;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";# 这里是具体后端模块的端口+路由进行访问proxy_pass http://198.16.0.99:9304/c_wss/;}}}