国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > Linux服務器上建站指南

Linux服務器上建站指南

時間:2023-07-10 21:36:02 | 來源:網(wǎng)站運營

時間:2023-07-10 21:36:02 來源:網(wǎng)站運營

Linux服務器上建站指南:當年騰訊云做校園優(yōu)惠的時候入手了每月一塊錢的服務器,在Apache上搭了WordPress用來寫博客。然而由于疏于維護,網(wǎng)站經(jīng)常遭到攻擊,動不動就死機。最近干脆重裝了系統(tǒng),打算從頭建立一個注重安全的服務器。

騰訊云服務器有個安全組管理,負責處理入站和出站的流量,其默認拒絕所有流量。為了能用SSH連接服務器,并且在服務器上安裝軟件,這里出站選擇全部放通,入站則暫時開放TCP:22端口。(與安全組相關的內(nèi)容可參考:騰訊云安全組學習筆記 - 云+社區(qū) - 騰訊云。)

搭建FTP服務器

FTP服務器可以在服務器與客戶端間進行文件傳輸。盡管該協(xié)議是明文傳輸,用戶名與密碼有被竊取的風險,但因為其搭建簡單,使用方便,想了想還是搭了一個。我選擇的是比較主流的軟件vsftpd,主要的任務就是修改/etc/vsftpd/vsftpd.conf這個文件,具體可參考鳥哥的 Linux 私房菜 -- 檔案伺服器之三: FTP 伺服器。

大概干了以下的事情:開放一個實體user給自己管理,享有ftp文件夾的全部權(quán)限;開放anonymous供下載;開啟被動模式。

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).anonymous_enable=YES## Uncomment this to allow local users to log in.# When SELinux is enforcing check for SE bool ftp_home_dirlocal_enable=YES## Uncomment this to enable any form of FTP write command.write_enable=YES## below is some useful settingspasv_enable=YESpasv_max_port=65410pasv_min_port=65400然后安全組選擇開放TCP:20,21,65400-65410入站,ftp就搭建完成了!輸入命令systemctl restart vsftpd 啟動!

搭建http服務器

搭建http服務器應該就是我們通常所說的建站,主流的服務器軟件有兩個:Apache和Nginx。我這里選擇的是最近比較流行的Nginx+Lua構(gòu)架的OpenResty。

這里我們根據(jù)官網(wǎng)安裝OpenResty,并參考教程《OpenResty 最佳實踐》使用OpenResty寫一個hello world程序。

首先創(chuàng)建一個帶家目錄的系統(tǒng)帳號:

useradd www -m -r網(wǎng)站的主要文件將存放于/home/www目錄下,該賬號不能登錄Bash,也沒有管理員權(quán)限,這樣即使網(wǎng)站被攻破了也不影響服務器的其它服務。

下面我們編寫~/openresty-test/conf/nginx.conf文件,提供靜態(tài)文件服務:

worker_processes 1; #nginx worker 數(shù)量error_log logs/error.log; #指定錯誤日志文件路徑events { worker_connections 1024;}http { server { #監(jiān)聽端口,若你的80端口已經(jīng)被占用,則需要修改 listen 80; # processes requests ending with the slash character # using an index file causes an internal redirect # a “/” request will actually be processed # in the second location as “/index.html”. location = / { root static; index index.html; } location ~ /.(html|txt|ico)$ { content_by_lua_block { local file, err = io.open(ngx.config.prefix() .. "static" .. ngx.var.uri, "r") if not file then ngx.exit(ngx.HTTP_SERVICE_UNAVAILABLE) end ngx.print(file:read("*a")) file:close() } } location / { content_by_lua_block { ngx.exit(ngx.HTTP_BAD_REQUEST) } } }}事實上,本身Nginx就提供了很好的靜態(tài)文件的處理功能。但我們這里用content_by_lua_block模塊代替Nginx輸出響應體則可以做到更加靈活地處理請求。例如當找不到目標文件時,Nginx默認會返回404并在日志中記錄該錯誤,我們在這里則可以有更多的處理。

在啟動Nginx前,我們需要添加環(huán)境變量:

export PATH=/usr/local/openresty/bin:/usr/local/openresty/nginx/sbin:$PATH以及允許普通用戶啟動Nginx時使用1024以下的端口:

setcap cap_net_bind_service+eip /usr/local/openresty/nginx/sbin/nginx重啟之后就可以啟動Nginx服務了:

nginx -p ~/openresty-test如果修改了配置文件,可以執(zhí)行重裝載命令使用新的配置:

nginx -p ~/openresty-test -s reload使用ps命令可以查看Nginx進程:

ps -ef | grep nginx使用kill結(jié)束Nginx進程:

kill -QUIT $( cat ~/openresty-test/logs/nginx.pid )

OpenResty的特點

最后我摘取《OpenResty 最佳實踐》的部分內(nèi)容,幫助大家更好地理解OpenResty 是干什么的。OpenResty其實最早是Nginx的一個Lua模塊,它能使我們通過Lua語言更方便地配置Nginx。

OpenResty 處理一個請求的流程可以參考下圖:

它主要包含了以下階段:

  1. set_by_lua*:流程分支處理判斷變量初始化
  2. rewrite_by_lua*:轉(zhuǎn)發(fā)、重定向、緩存等功能(例如特定請求代理到外網(wǎng))
  3. access_by_lua*:IP 準入、接口權(quán)限等情況集中處理(例如配合 iptable 完成簡單防火墻)
  4. content_by_lua*:內(nèi)容生成
  5. header_filter_by_lua*:響應頭部過濾處理(例如添加頭部信息)
  6. body_filter_by_lua*:響應體過濾處理(例如完成應答內(nèi)容統(tǒng)一成大寫)
  7. log_by_lua*:會話完成后本地異步完成日志記錄(日志可以記錄在本地,還可以同步到其他機器)
這幾個階段的存在,應該是 OpenResty 不同于其他多數(shù) Web 平臺編程的最明顯特征了。由于 Nginx 把一個請求分成了很多階段,這樣第三方模塊就可以根據(jù)自己行為,掛載到不同階段進行處理達到目的。OpenResty 也應用了同樣的特性。所不同的是,OpenResty 掛載的是我們編寫的 Lua 代碼。這樣我們就可以根據(jù)我們的需要,在不同的階段直接完成大部分典型處理了。

在這篇文章的配置中,我們只使用其中一個階段 content_by_lua*。理論上靠這個階段也可以完成所有的處理。但這樣做,會讓我們的代碼比較臃腫,越到后期越發(fā)難以維護。把我們的邏輯放在不同階段,分工明確,代碼獨立,后期發(fā)力可以有很多有意思的玩法。

在下一篇文章中,我們將介紹如何使用OpenResty的模塊操作數(shù)據(jù)庫以及如何開啟websocket協(xié)議實現(xiàn)聊天室功能。

關鍵詞:指南,服務

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉