Nginx的跨域、alias、優(yōu)化方式
更新時(shí)間:2024年08月06日 16:55:55 作者:Forever Nore
這篇文章主要介紹了Nginx的跨域、alias、優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
root與alias
location / {
alias /app/html/;
index index.html index.htm;
}
兩者區(qū)別:
alias是目錄別名,root是最上層目錄的定義alias后必須用"/"結(jié)束,不然找不到文件,root可有可無
反向代理解決跨域

- LVS:四層負(fù)載均衡,基于tcp ip和端口號(hào) 實(shí)現(xiàn)負(fù)載均衡
- Nginx:七層負(fù)載均衡,對(duì)http協(xié)議 實(shí)現(xiàn)負(fù)載均衡
nginx的優(yōu)化
基本配置優(yōu)化
- 查看CPU核數(shù)
cat /proc/cpuinfo| grep "cpu cores"| uniq

worker_processes 4 ; # 設(shè)為cpu核數(shù) 啟動(dòng)的worker進(jìn)程數(shù)
events{
#設(shè)置Nginx網(wǎng)絡(luò)連接序列化
accept_mutex on;
#設(shè)置Nginx的worker進(jìn)程是否可以同時(shí)接收多個(gè)請求
multi_accept on;
#設(shè)置Nginx的worker進(jìn)程最大的連接數(shù)
worker_connections 1024;
#設(shè)置Nginx使用的事件驅(qū)動(dòng)模型
use epoll;
}
http {
include mime.types;
#include是引入關(guān)鍵字,這里引入了mime.types這個(gè)配置文件(同在conf目錄下,mime.types是用來定義,求返回的content-type)
default_type application/octet-stream; #mime.types未定義的,使用默認(rèn)格式application/octet-stream
sendfile on; # 開啟 高效文件傳輸模式。
tcp_nopush on; #需要在 sendfile開啟模式才有效,防止網(wǎng)路阻塞,積極的減少網(wǎng)絡(luò)報(bào)文段的數(shù)量。將響應(yīng)頭和正文的開始部分一起發(fā)送,而不一個(gè)接一個(gè)的發(fā)送
tcp_nodelay on; #有數(shù)據(jù)隨時(shí)發(fā)送
keepalive_timeout 65; #長鏈接超時(shí)時(shí)間
#一個(gè)nginx可以啟用多個(gè)server(虛擬服務(wù)器)
server {
listen 80;#監(jiān)聽端口80
server_name localhost; #接收的域名
location / {
root html; #根目錄指向html目錄,看下圖
index index.html index.htm; #域名/index 指向 index.html index.htm文件,看下圖
}
error_page 500 502 503 504 /50x.html; # 服務(wù)器錯(cuò)誤碼為500 502 503 504,轉(zhuǎn)到"域名/50x.html"
location = /50x.html {
# 指定到html文件夾下找/50x.htm
root html;#根目錄指向html目錄,看下圖
}
}
}
反向代理設(shè)置keepalive
- 轉(zhuǎn)發(fā)請求 提高效率
upstream backend{
server 192.168.111.101:9001;
server 192.168.111.101:9002;
server 192.168.111.101:9003;
keepalive 300; # 300個(gè)長連接,轉(zhuǎn)發(fā)請求效率大大提高!
}
server {
listen 80;
server_name localhost;
location /{
proxy_pass http://backend;
}
}
壓縮
server {
listen 80;
server_name localhost;
gzip on;
gzip_buffers 32 4K;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml application/json;
gzip_disable "MSIE [1-6]\."; #配置禁用gzip條件,支持正則。此處表示ie6及以下不啟用gzip(因?yàn)閕e低版本不支持)
gzip_vary on; #accept-encoding
gzip_static on; #如果有壓縮好的,直接使用
location / {
proxy_pass http://127.0.0.1:8080;
}
}
配置文件內(nèi)容詳細(xì)介紹:
gzip配置的常用參數(shù)
gzip on|off; #是否開啟gzipgzip_buffers32 4K| 16 8K #緩沖(壓縮在內(nèi)存中緩沖幾塊? 每塊多大?)gzip_comp_level[1-9] #推薦6 壓縮級(jí)別(級(jí)別越高,壓的越小,越浪費(fèi)CPU計(jì)算資源)gzip_disable#正則匹配UA 什么樣的Uri不進(jìn)行g(shù)zipgzip_min_length200 # 開始?jí)嚎s的最小長度(再小就不要壓縮了,意義不在)gzip_http_version1.0|1.1 # 開始?jí)嚎s的http協(xié)議版本(可以不設(shè)置,目前幾乎全是1.1協(xié)議)gzip_proxied# 設(shè)置請求者代理服務(wù)器,該如何緩存內(nèi)容gzip_typestext/plain application/xml # 對(duì)哪些類型的文件用壓縮 如txt,xml,html ,cssgzip_vary on|off# 是否傳輸gzip壓縮標(biāo)志
緩存
# 代理緩存配置
# meitecache:256m,大小256m,失效時(shí)間1天 inactive=1d
proxy_cache_path "./meite_cachedata" levels=1:2 keys_zone=meitecache:256m inactive=1d max_size=1000g;
server {
listen 80;
server_name localhost;
location /details {
#使用緩存名稱
proxy_cache meitecache;
#對(duì)以下狀態(tài)碼實(shí)現(xiàn)緩存~~~~
proxy_cache_valid 200 206 304 301 302 1d;
# 緩存的key--》請求路徑
proxy_cache_key $request_uri;
add_header X-Cache-Status $upstream_cache_status;
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
操作系統(tǒng)優(yōu)化
vi /etc/sysctl.conf
- 配置內(nèi)容
# 防止一個(gè)套接字過多連接到達(dá)時(shí)引起負(fù)載 net.ipv4.tcp_syncookies=1 #默認(rèn)128,socket的監(jiān)聽隊(duì)列,微調(diào)大 net.core.somaxconn=1024 # timeout的超時(shí)時(shí)間,調(diào)小,tcp握手時(shí)間 net.ipv4.tcp_fin_timeout=10 #os直接使用timewait的連接 net.ipv4.tcp_tw_reuse=1 #回收禁用,若開啟---》快速回收處于 TIME_WAIT狀態(tài)的socket net.ipv4.tcp_tw_recycle=0
- 加載配置!
sysctl -p
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx反向代理中出現(xiàn)502錯(cuò)誤的解決步驟
反向代理是一種服務(wù)器代理的方式,它代理了客戶端的請求并將請求轉(zhuǎn)發(fā)給后端服務(wù)器,然后將后端服務(wù)器的響應(yīng)返回給客戶端,但經(jīng)常會(huì)遇到502錯(cuò)誤,所以本文給大家介紹了Nginx反向代理中出現(xiàn)502錯(cuò)誤的解決步驟,需要的朋友可以參考下2025-03-03
nginx快速部署一個(gè)網(wǎng)站服務(wù)(多域名+多端口)
本文主要介紹了nginx快速部署一個(gè)網(wǎng)站服務(wù),并實(shí)現(xiàn)多域名和多端口,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10
詳解Nginx服務(wù)器的配置中開啟文件Gzip壓縮的方法
這篇文章主要介紹了Nginx服務(wù)器的配置中開啟文件Gzip壓縮的方法,可以對(duì)CSS和JavaScript以及各種圖片等web傳輸?shù)奈募M(jìn)行壓縮,需要的朋友可以參考下2016-01-01
nginx進(jìn)行端口轉(zhuǎn)發(fā)的實(shí)現(xiàn)
本文主要介紹了nginx進(jìn)行端口轉(zhuǎn)發(fā)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Nginx+keepalived實(shí)現(xiàn)七層的負(fù)載均衡的高可用(最新解決方案)
這篇文章主要介紹了Nginx+keepalived實(shí)現(xiàn)七層的負(fù)載均衡的高可用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03

