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

linuxcweb伺服器

發布時間: 2023-07-16 11:36:17

❶ linux環境下,c語言怎麼讀取WEB伺服器的80埠上頁面的內容

已知url ,host, port;

int s, size;
struct sockaddr_in sin;
struct hostent* phe;
char cmd[256];
char msg_hdr[1000];
char* p;

//准備http中GET 方法的請求。
sprintf(cmd,"GET %s\r\nHTTP/1.1\r\nHost:%s", url, host);
//創建socket
if((s=socket(PF_INET,SOCK_STREAM,0))<0)
return -1;
//取得遠程主機的IP地址,失敗函數返回-1
if((phe = gethostbyname(host)) == NULL)
return -1;

memset(&sin,0,sizeof(sin));
memcpy(&sin.sin_addr,phe->h_addr,sizeof(struct in_addr));
sin.sin_family=AF_INET;
sin.sin_port=htons(pms->port);

//跟遠程機器建立連接,失敗函數返回-1
if(connect(s,(struct sockaddr*)&sin,sizeof(sin))==-1)
return -1;
//發送GET請求
if(write(s,cmd,strlen(cmd))<0)
return 0;

//從鏈接描述符(連接管道)中讀取傳送過來的數據
if(read(s, msg_hdr, 300)<0)
error;
close(s);

//讀到該文件的大小
if((p=strstr(msg_hdr,"Content-Length"))||(p=strstr(msg_hdr,"Content-length:")))
p+=16;
else
error;
//返回大小
size = atoi(p);

sprintf(cmd,"GET %s HTTP/1.1\r\nHost: %s\r\nAccept: */*\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nConnection: close\r\nRange: bytes0-%d\r\n\r\n", url, host, size);
//創建套介面
if((s=socket(AF_INET,SOCK_STREAM,0))<0)
return 0;
//取得遠程主機的IP地址,失敗返回0
if((phe = gethostbyname(host)) == NULL)
return 0;
memset(&sin,0,sizeof(sin));
memcpy(&sin.sin_addr,phe->h_addr,sizeof(struct in_addr));
sin.sin_family=AF_INET;
sin.sin_port=htons(port);
//建立連接
if(connect(s,(struct sockaddr*)&sin,sizeof(sin))==-1)
return 0;
//發送讀取請求
if(write(s,cmd,strlen(cmd))<0)
error;
read(s, buf, BUFSIZE)..............

❷ web伺服器 Nginx

(1)概念

Web伺服器是一台使用HTTP協議與客戶機瀏覽器進行信息交流(因此又稱為HTTP伺服器)、為互聯網客戶提供服務(信息瀏覽,下載資源等)的主機。發展趨勢:從HTML到XML、從有線到無線、從無聲到有聲

1.Linux是架設安全高效Web伺服器的操作系統

架設Web伺服器常見的操作系統:Windows、Linux、Unix。Linux安全性能最高,可以支持多個硬體平台,可以根據不同需求隨意修改、調整與復制各種程序的源碼以及發布在互聯網上,網路功能比較強大。

2.目前主流伺服器:Apache、 Nginx、 IIS

Unix/Linux操作系統下使用最廣泛的免費HTTP伺服器:Apache、Nginx。Windows(NT/2000/2003)操作系統使用ⅡS,綜合使用最多的Web伺服器是 IIs、Apache。

選擇WEB伺服器應考慮的本身特性因素有:性能、安全性、日誌和統計、虛擬主機、代理伺服器、緩沖服務和集成應用程序等。下面介紹目前最主流的三大web伺服器:

① 大型

IIS:

微軟的Internet Information Services (IIS),IIS 允許在互聯網上發布信息,提供了一個圖形界面的管理工具,稱為Internet服務管理器,可用於監視配置和控制Internet服務。IIS是一種Web服務組件,其中包括Web伺服器(網頁瀏覽)、FTP伺服器(文件傳輸)、NNTP伺服器(新聞服務)和SMTP伺服器(郵件傳輸),使得在網路上發布信息很容易。它提供ISAPI(Intranet Server API)作為擴展Web伺服器功能的編程介面,它還提供一個Internet資料庫連接器,可以實現對資料庫的查詢和更新。

Apache:

Apache是世界上用的最多的Web伺服器,源於NCSAhttpd伺服器的補丁(pache 補丁)。它的成功之處主要在於:源代碼開放、有開放的開發隊伍、支持跨平台的應用(可以運行在幾乎所有的Unix、Windows、Linux系統平台上)、可移植性。

② 小型

nginx:

nginx的模塊都是靜態編譯的,對fcgi的支持非常好,在處理鏈接的的方式上nginx支持epoll,支持通用語言介面(如:php、python、perl等),支持正向和反向代理、虛擬主機、url重寫、壓縮傳輸等。

(2)工作原理

當客戶端Web瀏覽器連到伺服器上並請求文件時,伺服器將處理該請求並將文件反饋到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。Web伺服器主要是處理向瀏覽器發送HTML以供瀏覽,而應用程序伺服器提供訪問商業邏輯的途徑以供客戶端應用程序使用。應用程序伺服器可以管理自己的資源,例如看大門的工作(gate-keeping ties)包括安全(security),事務處理(transaction processing),資源池(resource pooling), 和消息(messaging)。就象Web伺服器一樣,應用程序伺服器配置了多種可擴展(scalability)和容錯(fault tolerance)技術。Web伺服器的工作原理一般可分成如下4個步驟:

① 連接過程:是Web伺服器和其瀏覽器之間所建立起來的一種連接。查看連接過程是否實現,用戶可以找到和打開socket這個虛擬文件,這個文件的建立意味著連接過程這一步驟已經成功建立。

② 請求過程:是Web的瀏覽器運用socket這個文件向其伺服器而提出各種請求。

③ 應答過程:是運用HTTP協議把在請求過程中所提出來的請求傳輸到Web的伺服器,進而實施任務處理,然後運用HTTP協議把任務處理的結果傳輸到Web的瀏覽器,同時在Web的瀏覽器上面展示上述所請求之界面。

④ 關閉連接:是當上一個步驟--應答過程完成以後,Web伺服器和其瀏覽器之間斷開連接之過程。Web伺服器上述4個步驟環環相扣、緊密相聯,邏輯性比較強,可以支持多個進程、多個線程以及多個進程與多個線程相混合的技術。

Web伺服器可以解析HTTP協議。當Web伺服器接收到一個HTTP請求(request),會返回一個HTTP響應(response)。為了處理一個request,Web伺服器可以response一個靜態頁面(HTML頁面)或圖片,進行頁面跳轉(redirect),或把動態響應委託給伺服器端。Web伺服器的代理模型非常簡單。當一個request被送到Web伺服器里來時,它只單純的把request傳遞給可以很好的處理request的程序(伺服器端腳本,如:CGI腳本,JSP腳本,servlets,ASP腳本,伺服器端JavaScript等)。Web伺服器僅僅提供一個可以執行伺服器端程序和返回(程序所產生的)響應的環境,而不會超出職能范圍。伺服器端程序功能通常有:事務處理、資料庫連接、和消息等。雖然Web伺服器不支持事務處理或資料庫連接池,但它可以配置各種策略來實現容錯性、可擴展性(如:負載平衡、緩沖)。集群特徵經常被誤認為僅僅是應用程序伺服器專有的特徵。

(3)配置

如何設置默認文檔;在同一台伺服器上架設多個Web站點;(可以通過改變埠號)創建Web虛擬目錄;

1、了解DNS主機名和IP地址。

如果此WEB伺服器在Internet上,需向ISP申請和注冊此伺服器的DNS主機名和IP地址。如果此伺服器只在企業網內使用,則在內部的DNS伺服器上注冊。

2、打開伺服器文檔,選擇"埠"-"Internet埠",啟用"TCP/ IP埠"。

3、選擇"Internet協議",完成以下選項後,保存文檔。

① 綁定主機名:

A、選擇"是"則您可在"主機名"項中輸入主機別名,WEB用戶可用此別名替代Domino伺服器名訪問WEB伺服器。

B、選擇"否"(預設)則不允許使用別名。

② DNS查詢: 選擇"是"則Domino伺服器查詢發送請求的WEB客戶機的DNS名。

③ Domino日誌文件和資料庫將包含WEB客戶機的DNS主機名: 選擇"否"(預設)則不查詢,Domino日誌文件和資料庫將只包含WEB客戶機的IP地址( 注意:選擇"否"將提高Domino伺服器性能,因為伺服器不使用資源執行DNS查詢

④ "允許HTTP客戶瀏覽資料庫":選擇"是"則允許WEB用戶在URL中使用OpenServer命令來顯示伺服器上資料庫列表。選擇"否"(預設)則不允許。但即使WEB用戶不能看到伺服器上資料庫列表,他們仍能打開有許可權訪問的單個資料庫。

4、啟動HTTP任務。在伺服器控制台上,輸入:loap http

小型項目

(1)概念

1、Nginx(俄羅斯程序設計師Igor Sysoev用C語言進行編寫)是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3/SMTP)代理伺服器。

2、特點:佔有內存少(在高連接並發的情況下,Nginx是Apache伺服器不錯的替代品,能夠支持高達 50,000 個並發連接數的響應),並發能力強。

3、中國大陸使用nginx網站用戶有:網路、京東、新浪、網易、騰訊、淘寶等。

4、Nginx代碼完全用C語言從頭寫成,已經移植到許多體系結構和操作系統,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。

5、Nginx有自己的函數庫,並且除了zlib、PCRE和OpenSSL之外,標准模塊只使用系統C庫函數。而且,如果不需要或者考慮到潛在的授權沖突,可以不使用這些第三方庫。

(2)安裝

官網:http://nginx.org/

選擇要安裝的版本:

(3)使用

打開conf/nginx.conf,修改埠號,和主頁根地址為:打包後index.html的目錄

模擬域名配置(本地域名設置):

在瀏覽器地址欄輸入配置好的「域名:埠號」回車:

❸ linux系統下怎麼搭建網站伺服器

具體方法如下:

1、使用putty或類似的SSH工具登錄伺服器(本地安裝跳過);

❹ linux centOS下怎麼配置web伺服器

PS:系統概述
硬碟:130G
分區:兩個分別是根目錄(49G,系統及初始化軟體)和/data(89G,空著的、我計劃放所有網站)
已安裝的程序:
1.vsftp
2.mysql
3.apache

在開始操作之前我們把密碼改一下。。。還有就是本文中出現的《》這個符號都表示不用輸入
passwdroot《設置root密碼》
示例我們把所有網站程序都劃分到/data/web/下,方便以後管理

老闆要求
把在本地開發的php+mysql程序通過FTP架設到web伺服器,並能通過域名正常訪問網站。步驟/方法
第一步:創建FTP
================================================================
chmodgo+rwx/data《給data分配許可權》
cd/data《進入data分區》
mkdirweb《建立web目錄》
chmodgo+rwx/data/web
cd/《回到根目錄,個人操作習慣,可跳過這步》

useradd-s/sbin/nologin-gftp–d/var/www/web/wyh.comjiangge
(注:-s/sbin/nologin是讓其不能登陸系統,-d是指定用戶目錄為/var/www/web/wyh.com
jiangge為ftp用戶名字)
passwdjiangge《設置FTP密碼》
vi/etc/vsftpd/vsftpd.conf《修改FTP配置文件》
註:按一下i進入到編輯模式,修改完後按一下ESC退出編輯模式,再輸入《:wq》(其作用是保存改修改並退出)《:q!》退出不保存《:q》沒有做過修改用這個退出
idle_session_timeout
data_connection_timeout
找到這兩個,,修改其值大於900,如果不修改這個的話,,FTP鏈接很慢
#xferlog_file
找到這個,刪除#。。。作用是記錄FTP的日誌
/etc/init.d/vsftpdrestart《重啟FTP後配置文件才會生效》
到此第一步OK你可用FTP登陸啦!
註:我這配置有這個問題沒解決,登陸報超時,但你耐心的等一會,就會鏈接好,如果有盆友知道解決方法的,請幫解答一下。。。謝謝。。

======================================================================
第三步:配置mysql
==============================================================================
/usr/local/mysql/bin/mysql–uroot-p《登陸mysql,按一下ENTER然後輸入mysql密碼,默認和萬網root密碼一樣》
usemysql;《選擇mysql表》
grantalloncqwebseo_db.*tocqwebseo@localhostidentifiedby'cqwebseomysql';《添加一個數據,有所有許可權,cqwebseo_db為資料庫名,cqwebseo為用戶名,cqwebseomysql為密碼》
flushprivileges;《不用解釋吧,真就度娘一下。》
exit;《這個也不用說吧》
/usr/local/mysql/bin/mysqladmin-uroot-p8y6v8a3c7ushutdown《停止mysql》
/usr/local/mysql/bin/mysqld_safe《啟動mysql》
到此。。就Ok。注意。。注意。。。。。分號分號分號不要忘記了。
/usr/local/mysql/var《資料庫存放目錄》
================================================================================
第二步:配置httpd.conf
=======================================================================
echohi!Thistest!/data/web/cqwebseo.com>index.php《在cwebseo.com裡面建立一個內容為hi!Thistest!的index.php文件》
vi/var/www/conf/httpd.conf《進入主戰場》
按上下鍵,翻到文檔最後,然後加入下列表代碼(不知道怎麼加進的,看第一步的注意事項)
<VirtualHost*:80>
DocumentRoot/data/web/cqwebseo
DirectoryIndexindex.php
[email protected]
ServerNamecqwebseo.com
ServerAliaswww.cqwebseo.com
#ErrorLog/data/web/sanmao/log/error.log
#TransferLog/data/web/sanmao/log/access.log
</VirtualHost>
簡單說一下。。。。。。網上有很多這方面的資料
DocumentRoot/data/web/cqwebseo這個就是網站的決對地址說白就是你分配給他的FTP地址
DirectoryIndexindex.php這個表示網站默認首頁是index.php
[email protected]服務管理員的郵箱
ServerNamecqwebseo.com這個你懂的
ServerAliaswww.cqwebseo.com這個也不需要解釋吧
餘下的兩個被我注釋掉嘍,,,意思是網站的日誌文件存放地
var/www/bin/apachectlrestart重啟apachectl
var/www/bin/apachectlstop停止apachectl
var/www/bin/apachectlstart啟動apachectl
OK到這里。。第二步就完。。。你能輸入網址。。。看到這個目錄啦。。不過有個前題條件。。這個個域名要解析過來了滴哈。。不然的話。。你就不要輸入域名那兩個。。直接用你服務的IP地址訪問也行的。。。。如果你操作正確啦。。就能看到網頁上出現hi!Tistest!

❺ 有沒有用C或c++寫的web伺服器

C++單獨作為應用服務的伺服器較少,http伺服器有一些的。比如IIS、apache、nginx,d都是基於C/C++的web伺服器,國產的有數蠶web伺服器,完全使用C++,基於Linux epoll模型。
如果C++服務端要求簡單,可以直接基於socket編寫。如果通信場景復雜,建議使用成熟的C++網路庫,如POCO、cpp-net、boost-asio、數蠶網路通信庫。

❻ linux的web伺服器,在cgi(c)程序中如何跳轉到某個網頁呢,感謝了

看一下w3c的<form>,<method=post>還有action

❼ 如何在linux搭建web伺服器

可以參考如下Web伺服器的建立過程。示例環境及web伺服器軟體:

Ubuntu 12.04
LAMP(Linux,Apache,Mysql,PHP)

1、安裝Apache

(1)在安裝HTTP Server之前需安裝APR(Apache Portable Runtime)和APR-util安裝APR
$ tar zxvf apr-1.4.6.tar.gz
$ cd apr-1.4.6/
$ ./configure
$ make
$ sudo make install

(2)安裝APR-util

$ tar zxvf apr-util-1.4.1.tar.gz
$ cd apr-util-1.4.1
$ ./configure –with-apr=/usr/local/apr (whereis apr)
$ make
$ sudo make install

(3)安裝httpd-2.4.2.tar.bz2默認安裝位置/usr/local/apache2網頁放在/usr/local/apache2/htdocs配置文件/usr/local/apache2/conf/httpd.conf

$ tar jxvf httpd-2.4.2.tar.bz2
$ cd httpd-2.4.2/
$ ./configure
$ make
$ sudo make install

(4)啟動HTTP Server$ sudo /usr/local/apache2/bin/apachectl startAH00558: httpd: Could not reliably determine the server』s fully qualified domain name, using 127.0.1.1. Set the 『ServerName』 directive globally to suppress this message

(5)查看http是否正常運行$ netstat -a | grep httptcp 0 0 *:http *:* LISTEN

(6)在瀏覽器輸入127.0.0.1如果正常應該顯示「It works!」

2、安裝MySQL

(1)、下載安裝mysql-5.5.25.tar.gz,默認安裝位置/usr/local/mysql/

$ tar zxvf mysql-5.5.25.tar.gz
$ cd mysql-5.5.25/
$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql
$ cmake .
$ make
$ sudo make install
$ cd /usr/local/mysql/
$ sudo chown -R mysql .
$ sudo chgrp -R mysql .
$ sudo scripts/mysql_install_db –user=mysql
$ sudo chown -R root .
$ sudo chown -R mysql data/
$ sudo cp support-files/my-medium.cnf /etc/my.cnf
$ sudo cp support-files/mysql.server /etc/init.d/mysql.server

(2)、啟動MySQL:
方法1:$ sudo service mysql.server start
方法2:$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &

3、安裝PHP

(1)安裝下載php-5.4.4.tar.gz

$ tar zxvf php-5.4.4.tar.gz
$ cd php-5.4.4
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli --enable-mbstring --with-mcrypt(可能需要安裝libmcrypt-dev )
$ sudo make install
$ sudo cp php.ini-development /usr/local/lib/php.ini

(2)配置HTTP Server使之支持PHPapache配置文件/usr/local/apache2/conf/httpd.conf修改或添加如下配置

<;IfMole dir_mole>
DirectoryIndex index.php
<;/IfMole>
<;FilesMatch \.php$>
SetHandler application/x-httpd-php
<;/FilesMatch>

(3)重啟HTTP Server
$ sudo /usr/local/apache2/bin/apachectl restart

❽ web伺服器有哪些

目前主流web伺服器有三個:apache、IIS、nginx。

其中apache是開源的老牌伺服器,多用於傳統業務,其優點是系統穩定,擴展模塊豐富,各種特性支持完整,並且跨平台。

IIS是微軟改拿譽主力打造的web伺服器,目前作為Windows系統組件一部分,和微軟上層web開發(asp.net)應用介面緊密。

nginx是開源的後起之秀,是俄羅斯敏乎開發的一款用於高並發服務的web伺服器,主要應用於高並發網站、靜態伺服器、下載伺服器等,其優點是性能更高,核段支持負載均衡,反向代理。

國產web伺服器主要有:

Tengine:是淘寶開發團隊基於nginx修改的,優化了資源請求的web伺服器,其特點繼承nginx,並針對資源請求做了優化。

數蠶web伺服器:是數蠶科技基於c++的Linux下的web伺服器,主要用於靜態頁面和簡單的計算型服務網站。其特點是支持高並發,支持多進程,c++/c介面良好,缺點是動態頁面支持較差。