前端轉發
通過瀏覽器訪問后端服務的時候返回404,有兩種情況下會出現
第一種: nginx.conf的配置沒有添加 導致出現訪問出現404.這種情況的404可以通過nginx的error日志來查看
tail -f /var/log/nginx/error.log
修改nginx.conf
第二種: 后端微服務網關項目的配置沒有正確的路由到具體的微服務應用導致后端服務返回404
1.在nginx的err.log看不到404輸出 但是在nginx的access.log中出現了404
tail -f /var/log/nginx/access.log
后端gateway的路由配置沒有添加
加上網關配置后 發起訪問后返回正常
總結:
任何一個請求走的都是兩級反向代理
第一級最前端有nginx負責路由轉發,第二級由后端網關項目進行路由轉發。這兩個地方的路由配置都需要同步更新。
網絡協議監聽
禁用ipv6
sysctl net.ipv6.conf.all.disable_ipv6=1
微服務調用超時
微服務之間通過feign互相調用,跨服務器調用時拋出異常:No route to host
feign調用其他服務也是通過獲取eureka注冊中心服務,猜測是否服務注冊的IP存在問題,查詢指定appId的實例
這是由於網絡問題 1.有的微服務容器使用了主機網絡 2.有的微服務容器使用的不是主機網絡
導致微服務之間網絡不通造成調用超時
統一所有的微服務網絡即可
后端數據庫調試
./mysql -S /app/data01/mysql/db/mysql.sock -u root -p
容器環境前后端聯調
nginx監聽端口但是無法返回html頁面
1.查看nginx的error日志 發現是一個權限問題
2.修改文件權限
3.重新啟動nginx
瀏覽器正常打開web服務器上的index.html
nginx返回日志404
后端服務是正常的 但是nginx代理請求后端接口的時候會經常返回404。修改nginx的配置文件

user root; worker_processes 1; error_log /var/log/nginx/error.log; #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 /var/log/nginx/access.log main; #client_body_timeout 10; # #client_header_timeout 10; send_timeout 100; server_tokens off; client_max_body_size 50m; map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream gatewayserver { server 192.168.30.123:8008; } upstream websockserver { server 192.168.30.123:8770; } upstream prometheus_servers_http { server 192.168.30.135:3000 max_fails=3 fail_timeout=5s; } sendfile on; #tcp_nopush on; #keepalive_timeout 65; #gzip on; # another virtual host using mix of IP-, name-, and port-based configuration # # HTTPS server # limit_conn_zone $binary_remote_addr zone=one:10m; server { listen 1688; server_name sab; send_timeout 100; client_header_timeout 60000; client_body_timeout 60000; #charset koi8-r; keepalive_timeout 650; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html/; index index.html index.htm; client_max_body_size 100m; #limit_conn one 10; limit_rate 10240k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; //對單個IP的連接數進行了限制 如果前端連接過多超過這個數值的話nginx會直接返回超時 } location /prod-api/ { rewrite ^/prod-api/(.*) /$1 break; root /app/taishi/nginx/html/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /admin-console { proxy_pass http://gatewayserver; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /schedule { proxy_pass http://gatewayserver; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /es-service { proxy_pass http://gatewayserver; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 600s; limit_conn one 100; } location /rule { proxy_pass http://gatewayserver; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /collect { proxy_pass http://gatewayserver; #proxy_read_timeout 300s; #proxy_connect_timeout 300s; #proxy_send_timeout 300s; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /sdc-web { proxy_pass http://gatewayserver; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /soar-service { proxy_pass http://gatewayserver; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /prod-api/soar-service/ { proxy_pass http://gatewayserver/soar-service/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /stage-api/soar-service/ { proxy_pass http://gatewayserver/soar-service/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /prod-api/schedule/ { proxy_pass http://gatewayserver/schedule/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /prod-api/admin-console/ { proxy_pass http://gatewayserver/admin-console/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /prod-api/es-service/ { proxy_pass http://gatewayserver/es-service/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_read_timeout 1000s; limit_conn one 100; } location /prod-api/rule/ { proxy_pass http://gatewayserver/rule/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /prod-api/collect/ { proxy_pass http://gatewayserver/collect/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /grafana/ { proxy_pass http://prometheus_servers_http; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /prod-api/sdc-web/ { proxy_pass http://gatewayserver/sdc-web/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /sdc-api-webcenter { proxy_pass http://gatewayserver; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /prod-api/sdc-api-webcenter/ { proxy_pass http://gatewayserver/sdc-api-webcenter/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } location /stage-api/sdc-api-webcenter/ { proxy_pass http://gatewayserver/sdc-api-webcenter/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; limit_conn one 100; } #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; } } # 開啟gzip gzip on; # 啟用gzip壓縮的最小文件,小於設置值的文件將不會壓縮 gzip_min_length 1k; # gzip 壓縮級別,1-9,數字越大壓縮的越好,也越占用CPU時間,后面會有詳細說明 gzip_comp_level 2; # 進行壓縮的文件類型。javascript有多種形式,后面的圖片壓縮不需要的可以自行刪除 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 是否在http header中添加Vary: Accept-Encoding,建議開啟 gzip_vary on; # 設置壓縮所需要的緩沖區大小 gzip_buffers 4 16k; proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=imgcache:100m inactive=1d max_size=10g; }