當前位置:首頁 » 網頁前端 » nginx配前端
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

nginx配前端

發布時間: 2022-08-11 14:43:39

Ⅰ Nginx解決前端跨域問題 CORS跨域配置

Nginx的CORS配置,網上太多這配置了,但大家更多的復制粘貼、轉發,幾乎都是類似下面這三兩行:

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

這樣有用么?有用,我以前這樣使用也正常過,但後來還是遇到問題了,發現有些項目請求就不成功,也遇到有些瀏覽器成功,有些瀏覽器不成功;

參考Nginx解決前端跨域問題linux部署配置nginx。

Ⅱ 前端如何部署nginx跨域

跨域基本上都是要後端來配合的,
打比方說,我提供的server,只是供我自己域名下web應用來請求的,如果對方在自己的web應用裡面調用我提供的api,給用戶提供了很好的體驗,但是負荷扔給了我的伺服器,這是不合理的
所以,跨域很難通過前端來配置
那麼就要說解決辦法了
①如果另一面也是自己的伺服器,那麼在自己的伺服器配置即可
②如果是他人的伺服器,那麼可以自己在自己的伺服器上做一個轉發,轉發出去的請求會以你自己伺服器的ip署名,如果對方不同意這個做法,也可以屏蔽掉你,合情合理

Ⅲ 怎樣通過nginx配置實現前後端分離

兩種方式,一個是前端一個nginx,後端幾個webserver,後端設置防火牆,防火牆允許nginx進入。
另一個方式就是nginx設置好讀寫分離

Ⅳ 16G內存分配給nginx做前端加速後端,有什麼建議嗎

仔細檢查nginx相關設置,如果還不行換個nginx 版本試試吧。
1、nginx相對於apache的優點:
輕量級,同樣起web 服務,比apache佔用更少的內存及資源
抗並發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高並發下nginx 能保持低資源低消耗高性能
高度模塊化的設計,編寫模塊相對簡單
社區活躍,各種高性能模塊出品迅速啊
apache 相對於nginx 的優點:

rewrite ,比nginx 的rewrite 強大
動態頁面
模塊超多,基本想到的都可以找到
少bug ,nginx 的bug 相對較多

Ⅳ 怎麼一台nginx做前端 多台後端用apache

實現:
1.修改nginx配置文件,將php動態請求轉發給apache
# cat /usr/local/nginx/conf/vhosts/test.conf
server
{
listen 80;
server_name www.test.com test.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/www/data/test;
access_log /usr/local/nginx/logs/test-access.log;
# nginx找不到文件時,轉發請求給後端Apache
error_page 404 @proxy;
# 這是原來lnmp時,nginx自己將php請求提交到127.0.0.1:9000。現在由apache來處理,因此注釋掉這段。
#location ~ .*\.(php|php5)?$
#{
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# include fastcgi.conf;
#}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
# 動態文件.php請求轉發給後端Apache
location ~ \.php$ {
# 向後端伺服器發起請求時添加指定的header頭信息
proxy_set_header Host $http_host;
# 向後端伺服器發送真實 IP
proxy_set_header X-Real-IP $remote_addr;
# 讓後端如php能直接通過變數獲取真實IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}
# nginx找不到文件時,轉發請求給後端Apache
location @proxy {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}
}

然後只要開啟nginx監聽80埠,apache監聽8080埠,開啟php,就可以了。這邊,我同時開啟nginx,apache的訪問日誌。當我訪問www.test.com/a.html,www.test.com/info.php時,nginx記錄下了所有a.html,info.html的訪問請求。
nginx訪問日誌
192.168.45.30 - - [19/Jun/2013:14:41:06 +0800] "GET /a.html HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
192.168.45.30 - - [19/Jun/2013:14:41:06 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
192.168.45.30 - - [19/Jun/2013:14:41:08 +0800] "GET /info.php HTTP/1.1" 200 10518 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
192.168.45.30 - - [19/Jun/2013:14:41:08 +0800] "GET /info.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2158 "http://www.test.com/info.php" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
192.168.45.30 - - [19/Jun/2013:14:41:08 +0800] "GET /info.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2536 "http://www.test.com/info.php" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
192.168.45.30 - - [19/Jun/2013:14:41:08 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
192.168.45.30 - - [19/Jun/2013:14:41:09 +0800] "GET /info.php HTTP/1.1" 200 10518 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"

當我訪問www.test.com/a.html,www.test.com/info.php時,apache只記錄了info.html的訪問請求。說明nginx將php請求轉發給了apache。這里可以看到來源都是127.0.0.1。而不是真實的來源ip。
apache訪問日誌
127.0.0.1 - - [19/Jun/2013:11:04:16 +0800] "GET /favicon.ico HTTP/1.0" 404 209
127.0.0.1 - - [19/Jun/2013:11:04:23 +0800] "GET /favicon.ico HTTP/1.0" 404 209
127.0.0.1 - - [19/Jun/2013:11:04:31 +0800] "GET /favicon.ico HTTP/1.0" 404 209
127.0.0.1 - - [19/Jun/2013:11:04:34 +0800] "GET /favicon.ico HTTP/1.0" 404 209
127.0.0.1 - - [19/Jun/2013:11:04:39 +0800] "GET /favicon.ico HTTP/1.0" 404 209
127.0.0.1 - - [19/Jun/2013:11:05:09 +0800] "GET /favicon.ico HTTP/1.0" 404 209
127.0.0.1 - - [19/Jun/2013:11:05:18 +0800] "GET /favicon.ico HTTP/1.0" 404 209
127.0.0.1 - - [19/Jun/2013:11:05:24 +0800] "GET /info.php HTTP/1.0" 200 55447
127.0.0.1 - - [19/Jun/2013:11:05:24 +0800] "GET /info.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.0" 200 2524
127.0.0.1 - - [19/Jun/2013:11:05:24 +0800] "GET /info.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 HTTP/1.0" 200 2146
127.0.0.1 - - [19/Jun/2013:11:05:24 +0800] "GET /favicon.ico HTTP/1.0" 404 209

2.apache添加mod_rpaf, 獲取nginx轉發過來的真實IP
mod_rpaf模塊不是必須安裝,除非你需要開啟apache日誌,但有多此一舉之嫌,因為已經有nginx日誌了,再開apache日誌話就出現重復了。
Apache rpaf模塊作用是獲取Nginx轉發過來的真實IP,否則在Apache日子中來訪IP全部為127.0.0.1。
# wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
# tar zxvf mod_rpaf-0.6.tar.gz
# cd mod_rpaf-0.6
# /usr/local/www/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
安裝過程中,若出現error: 'conn_rec' has no member named 'remote_ip,請參考附錄1.mod_rpaf-2.0.c error: 'conn_rec' has no member named 'remote_ip

# vim /usr/local/apache/conf/httpd.conf //在LoadMole後添加以下內容
LoadMole rpaf_mole moles/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 127.0.0.1
RPAFsethostname On
RPAFheader X-Forwarded-For

Ⅵ 求教,使用https鏈接,證書需要配置在最前端的nginx嗎

https證書需要配置在最前端的伺服器上
如果nginx位於整體伺服器最前端,需要配置到nginx上
如果nginx前面還有CDN,則需要在CDN節點上配置,也就是說只要用到https訪問的,都需要配證書,CDN和nginx可以通過http,這樣不用在nginx上配證書,否則nginx同樣需要配

Ⅶ nginx配置前端,需要幾台什麼樣的伺服器。什麼樣的系統,什麼樣的配置

兩種前端架構:
lvs -> nginx前端代理 -> squid緩存
lvs -> squid前端緩存 -> nginx中層代理

squid在前面的優點:
Squid作純代理比較穩當
前端少一級代理,響應速度會快,出問題的可能性要小
功能有限,不會常被調整
容易為人接受,只是為了擴充功能而增加中層代理
一般的配置簡便,比如增加一個二級域名,只需配置一個指向。
增加的nginx可擴展功能,增加對應用服務的負載均衡等。

squid在前面的缺點:
squid支持的負載均衡配置復雜
容災問題
更新緩存要遍歷所有機器
squid只支持單cpu,所以浪費cpu

nginx在前面的優點:
分流、負載均衡功能強大,可以細致定義
可精細定製access_log
nginx的錯誤日誌更詳細
可讓squid只緩存無壓縮版本,由nginx壓縮,這樣可優化squid緩存容量
nginx可分擔部分無實時性要求的緩存

nginx在前面的優點:
nginx目前還有部分bug。
功能強,所以可能經常被調整
nginx代理用的短鏈接方式
單機上安裝nginx+squid的cpu消耗比純squid和純nginx之和要大一倍,但也不算高
容易遭到質疑,不易被接受。

Ⅷ nginx怎麼部署前端項目

1、安裝護衛神·nginx大師
2、開設站點,綁定和解析域名
3、上傳前端頁面到網站