首页 > 数据库 > 数据库开发技术 > Nginx:最强大的web服务器-反向代理
今天跟我一起折腾一下nginx服务器,首先简单介绍一下nginx服务器
nginx官网(https://nginx.org/en/)


nginx作为web服务器,可以使用反向代理、负载均衡、邮件代理;大多数使用nginx的场景是反向代理和负载均衡
user www-data;worker_processes auto;pid /run/nginx.pid;include /etc/nginx/modules-enabled/*.conf;events {worker_connections 768;# multi_accept on;}http {# 关闭服务器版本信息server_tokens off;# 负载,此处做的不同服务器8081的负载upstream upserver {server tomcat1:8081;server tomcat2:8081;}### Basic Settings##sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;# server_tokens off;# server_names_hash_bucket_size 64;# server_name_in_redirect off;include /etc/nginx/mime.types;default_type application/octet-stream;### SSL Settings##ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLEssl_prefer_server_ciphers on;access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;### Gzip Settings##gzip on;include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;server {listen 80;server_name 域名;#此处做if判断,拦截所有非域名访问的url,返回403;此处配置方式是拦截所有url放行域名的配置方式之一if ($host != '域名'){return 403;}ssl on;root /www;index index.nginx-debian.html index.html index.htm;ssl_certificate test.com.pem;# 生成的ssl.pemssl_certificate_key test.com.key;# 生成的ssl.keyssl_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;location /{index index.html;try_files $uri $uri/ /index.html;}}server {listen 8230;server_name 域名;if ($host != '域名'){return 403;}# 开启sslssl on;root /www;index index.nginx-debian.html index.html index.htm;ssl_certificate test.com.pem; # ssl.pemssl_certificate_key test.com.key;# ssl.pemssl_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;location /{index index.html;# 防止vue 项目history模式下刷新页面404try_files $uri $uri/ /index.html;}# 针对/ws url开头的做特殊处理location /ws {proxy_pass http://upserver;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Port $Server_port;proxy_set_header X-Forwarded-Proto $scheme;proxy_http_version 1.1;# 配置websocket使用的请求头proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}# 针对/api开头的url做特殊处理location /api {proxy_pass http://apiserver;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Port $Server_port;proxy_set_header X-Forwarded-Proto $scheme;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}}}
location /ws {#反向代理地址 此处ddupserver是上方配置的负载均衡服务器proxy_pass http://upserver;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Port $Server_port;proxy_set_header X-Forwarded-Proto $scheme;proxy_http_version 1.1;# 配置websocket使用的请求头proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}
ssl_certificate test.com.pem; # ssl.pemssl_certificate_key test.com.key;# ssl.pem
# 配置websocket使用的请求头proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";
websocket链接,https
前端链接websocket要使用wss://不能使用ws://
vue项目history模式使用nginx部署404
官方解决(https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations)
location /{index index.html;try_files $uri $uri/ /index.html;}
-----------------------------END--------------------------------------
原文作者:醉鱼Java;如有侵权,请联系管理员删除。