code服务器搭建
A. spring security oauth2 搭建资源服务器,如何配置受保护资源,我想配置order路径为保护资源,不起作用
我做了一个demo,你可以看下,有不懂的再问吧,
网页链接
B. vs code 前端如何以服务器模式打开
废话在线,肯定首先要安装 vs code 和 node.js(既然是前端就必须回,不会的面壁思过)
然后在命令符中输入 npm install -g live-server 进行安装,(简单的NPM安装)
安装成功后在vscode里 “查看” - “集成终端”或者 文件夹命令提示符 里面输入 live-server ,
等待浏览器会自动打开 http://127.0.0.1:8080/ 这个端口,
这样我们就能像webstorm等IDE这样在本地方便的使用 ajax 或者 vue-resource 等功能,希望帮到你们
---------------------------------------------------------------------------------------
2017-09-30日更新
现在 vs code 中有个插件叫 Live Server,不需要上面的方法了
C. 阿里云code怎么更新服务器内容
用crp.aliyun.com可以配置监听阿里云code的代码库,然后配置部署,关联服务器。可以旺旺上问答疑的同学。
D. 如何搭建Repo服务器端
以下就是搭建repo服务器端的步骤,有了它我们也能像Android项目那样在linux系统下同时管理几百个工程了。
Step 1. 构建git server (ip is 192.168.5.141).
Step 2. Run following commands to initialized manifest.git repository on the server machine with "Frank" user privilege.
java">mkdirrepositories
cdrepositories
gitinit--baremanifest.git
Step 3. Run following commands to initializeda test git repository in the same path with manifest.git with "Frank" user privilege.
cdrepositories
gitinit--bareproject1.git
Step 4. Run following command on the server machine with administrator privilege.(有什么用?)
sudogedit/etc/sv/git-daemon/run
Modifythelastlineto:
execgit-daemon--verbose--enable=receive-pack--export-all<strong>--base-path=/home/Frank/repositories</strong>
Rebootthemachine
Step 5. Customize manifest.git
Login a client machine, run following command to clone manifest.git repository:
mkdirMyRepo
cdMyRepo
[email protected]:repositories/manifest.git
cdmanifest
Createadefault.xmlfilewithfollowingcontent:
<?xmlversion=<span
class="code-quote">"1.0"</span>encoding=<span
class="code-quote">"UTF-8"</span>?>
<strong><manifest></strong>
<remotename=<spanclass="code-quote">"korg"</span>
fetch=<spanclass="code-quote">"git:<span
class="code-comment">//192.168.5.141/"</span>review=<span
class="code-quote">"review.source.android.com"</span>/>
</span>
<strong>
<<spanclass="code-keyword">default</span>
revision=<spanclass="code-quote">"master"</span>
remote=<spanclass="code-quote">"korg"</span>/>
<projectpath=<spanclass="code-quote">"project1"</span>
name=<spanclass="code-quote">"project1"</span>
/></strong>
</manifest>
.xmlfile
gitadd--all
gitcommit-a-m<spanclass="code-quote">"add<spanclass="code-keyword">default</span>.xml"</span>
gitpush--all
Step 6. Customize Project1.git
Login a client machine, run following command to clone project1.git repository:
cdMyRepo
[email protected]:repositories/project1.git
cdproject1
echo<spanclass="code-quote">"HelloProject1"</span>>Hello.txt
.txtfile
gitadd--all
gitcommit-a-m<spanclass="code-quote">"addHello.txt"</span>
gitpush--all
Step 7. Test the repo server
Run following command on the client machine side.
mkdirbin
<pre>
curlhttp://commondatastorage.googleapis.com/git-repo-downloads/repo>~/bin/repo
chmoda+x~/bin/repo
Export~/bintosystemenviromentpath.
mkdirMyProject
cdMyProject
<strong>
repoinit-ugit:</strong><spanclass="code-comment"><strong>//192.168.5.141/manifest.git</strong>
</span>
reposync
E. 如何架设php服务器
【一】首先下载软件:
(apache) 我用的是在华军软件园下载的apache_1.3.26-win32-x86-no_src!!
(jdk!) 在首页上面就有连接。
(php4) 不用多说了code-labs上面就有也可以去php的官方网站看看!!
(iasp) 最重要的一个软件了——————————————————————————————————
【二】安装apache
1、双击apache的安装文件,和普通windows程序安装一样,一路点“next”就可以。
2、安装程序要求你输入你的network domain(网络域名:形如xxx.com);server domain(服务器域名:形www.xxx.com)和网站管理员的e-mail。有的话就按实填写,个人用户若没有的话可以按格式随便填一下。
3、到了选择安装路径,本人强烈建议你将安装路径改为“c:\”,因为这样可以省去好多的配置麻烦。 4、一路“next”直至“finish”。安装就结束了。
这时,你的apache已经启动了,你可以在ie地址栏里输入:http://localhost/或http://127.0.0.1看看。在“管理工具”的“服务”项中,也可以找到apache服务的身影了,以后apache就可以作为一项windows2000服务,随着机器的启动而运行了!
------------------------------------------------------------------------------
【三】配置apache
打开配置文件主要修改的项目是:
(1)、查找documentroot。这个语句指定你的网站路径,也就是你主页放置的目录。你可以使用默认的,也可以自己指定一个,但记住,这句末尾不要加“/”。
(2)、寻找到directoryindex。这就是你站点第一个显示的主页,在index.html的后面加入index.htm index.php index.php3 index.cgi index.pl index.asp等等。注意,每种类型之间都要留一空格!
(3)、特别说明一点就是port(端口号),如果没安装iis的话,就保持80不要变,否则,就要改一下(因为iis的web服务占据了80),可以改成81等等,或者干脆改iis的默认端口号!随你高兴。
(4).#bindaddress * 改为 bindaddress 127.0.0.1(用记事本打开/然后点编辑/查找)
其他都是以后深入使用是才要配置的项目了!安装完毕后运行http://localhost/
就可以看见apache的帮助文件了!
-----------------------------------------------------------------------------
【四】安装xxx(注意这个最主要的了)(关闭apache服务)
(1)、下面安装php首先安装php到c:\php4 (别改路径了!否则以后的配置....哼哼)我用的是php的4.0.2版,
(2)、接下来就要拷贝msvcrt.dll到c:\winnt\system32\下面系统就回提示所文件正在被windows使用了,不要紧正常现象!覆盖任何原有文件。
(3)、把 c:\php.ini-dist改名为php.ini,拷贝到c:\winnt下,
(4)、好了现在打开apache的配置文件httpd.conf增加下面的语句:(随便什么地方都可以,但要单独成行)
scriptalias /php4/ "c:/php4/"
addtype application/x-httpd-php4 .php
addtype application/x-httpd-php4 .php3
addtype application/x-httpd-php4 .php4
action application/x-httpd-php4 "/php4/php.exe"
directoryindex index.html
directoryindex index.htm
directoryindex index.php
directoryindex index.php3
directoryindex index.php4
directoryindex index.asp
(5)、接下来修改php.ini文件
找到windows extensions项:增加
extension_dir = c:\php4
extension=php_zlib.dll
extension =php_ldap.dll
extension =php_zlib.dll
extension =php_calendar.dll
extension =php_exif.dll
extension =php_ftp.dll
extension =php_mssql70.dll (这一项不要加,没有mssql7.0呀)
extension =php_imap.dll
■ok存盘ko■
在你的documentroot的目录下建立test.php文件
<?phpinfo();?>
ok看见php的测试页面了!!至此php的配置已经完成了!
下面安装jdk也是进行默认安装就可以了!之后在windows的环境变量里面增加path变量值c:\j2sdk*\bin(*:不同版本的安装路径名不同)
好了下面安装iasp使用默认安装就可以了!在安装过程后软件会提示你进行web server的设置首先选择:
instant asp native servlet surport 选项接下来选择apache server
之后要求你选择apche的版本号和httpd.conf的路径选择好后系统自动进行配置如果一切顺利就可以测试了!!
建立test.asp
<%response.write("hell world!")%>
现在运行http://localhost/test.asp,看到helloworld!好了一切搞定有可以使用apache了!!!
------------------------------------------------------------------------
【五】、上面说到了windows+apache+php+asp的运行环境了今天来说说在这个基础上使apache也可以支持jsp的运行。
1:所需软件resin(resin2.1.4)resin http://www.caochu.com
下面说说怎么安装:
resin在下载后是.zip文件只要简单的解压缩到指定的目录就可以了这里我使用的是c:\resin-ee-2.1.4 利用命令 c:\resin-ee-2.1.4\bin\httpd.exe -install(remove)将resin作为win2000的一个service
ok!下面找到win2000的环境变量"控制面板-->系统-->高级-->环境变量“
增加变量"resin_home"变量值"c:\resin-ee-2.1.4"如果你已经安装了 jdk那么就不需要设置什么了!没有的话就看看的我的上一篇文章!!!ok向下~~
现在修改apache的设置文件httpd.conf假如下面的代码:
loadmole caucho_mole c:/resin-ee-2.1.4/libexec/apache-1.3/mod_caucho.dll
addmole mod_caucho.c
F. 阿里云服务器 怎么用git部署代码
使用阿里云Ubuntu 12.0.4 64位操作系统做git服务器。
首先git服务器有两种访问方式可以选择:http方式和ssh的方式,http方式更容易使用。
1、http方式的git服务器搭建以及使用git命令行访问:
On the Server
1) Install Ubuntu Server, this is the base of our git server obviously
2) Now we need to install a couple of packages, these being ‘git-core’ and ‘apache2′, we do this like so:-
apt-get update
apt-get install apache2 git-core
3) Now we need to create a new folder for your new repository and set some inital permissons, we do this like so:-
cd /var/www
mkdir test-repo.git
cd test-repo.git
git --bare init
git update-server-info
chown -R www-data.www-data .
4) We now need to enable WebDAV on Apache2 of which we will use to serve the repository:-
a2enmod dav_fs
5) We now need to configure the access restrictions to our repository by creating the following file:-
/etc/apache2/conf.d/git.conf
Then fill it in with the following content:-
<Location /test-repo.git>
DAV on
AuthType Basic
AuthName "Git"
AuthUserFile /etc/apache2/passwd.git
Require valid-user
</Location>
Then save and close the file, lets move on to the next bit..
6) Next we need to create a user account of which you will need to use to browse of commit to the repository..
htpasswd -c /etc/apache2/passwd.git <user>
You could then be prompted to enter the password for the user too and confirm it!
7) Ok that’s it for the server side configuration… we just need to restart Apache2 like so and then we should be ready to move on to the client side stuff!
/etc/init.d/apache2 restart
…you can now move on to the client side stuff!
On the client side
Ok so now we need to create a local (on your desktop machine) repository and then we’ll initiate the new remote repository… So, if your using Linux/MacOSX bring up the terminal and type the following commands:-
mkdir ~/Desktop/test-project
cd ~/Desktop/test-project
git init
git remote add origin http://<user>@<server name or IP address>/test-project.git
touch README
git add .
git commit -a -m “Initial import”
git push origin master
Done! – Your intiial file named ‘README’ which currently is just blank has now been committed and you’ve pushed your code to your new git server which has now completed the Git reposity creation process, now in future you can ‘clone’ your resposity like so:-
git clone <user>@<server name or IP address>/test-project.git
注意上面连接http://<user>@<server name or IP address>/test-project.git中的user就是你htpasswd -c /etc/apache2/passwd.git <user>输入的用户名。
另外新建仓库的时候,只需执行:
cd /var/www
mkdir 项目名
cd 项目名
git --bare init
git update-server-info
chown -R www-data.www-data .
然后在/etc/apache2/conf.d/git.conf中对应添加上面类似段即可。
其中:
AuthUserFile 密码文件名
后面的文件就是你指定的密码文件,你可以
htpasswd -c 密码文件名 <user>
对应指定该项目的用户名和密码即可。添加用户是不要-c参数:
htpasswd 密码文件名 <user>
G. MAC环境下如何搭建SVN服务器
在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置。
我们首先来看下,如何在Mac环境下搭建svn服务器端环境。
回到顶部
我先在/User/apple目录下新建一个svn目录,以后可以在svn目录下创建多个仓库目录
打开终端,创建一个mycode仓库,输入指令:svnadmin create /Users/apple/svn/mycode
指令执行成功后,会发现硬盘上多了个/Users/apple/svn/mycode目录,目录结构如下:
回到顶部
二、配置svn的用户权限
主要是修改/svn/mycode/conf目录下的三个文件
1.打开svnserve.conf,将下列配置项前面的#和空格都去掉
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
- 2.打开passwd,在[users]下面添加帐号和密码
[users]
mj=123
jj=456
- 3.打开authz,配置用户组和权限
<font color="rgb(0, 0, 0)"><font style="background-color:rgb(254, 254, 242)"><font face="verdana, Arial, Helvetica, sans-serif">[groups]
topgroup=mj,jj</font></font></font>
- 说明mj和jj都是属于topgroup这个组的,接下来再进行权限配置。使用[/]代表svn服务器中的所有资源库
[/]
@topgroup=rw
- 上面的配置说明topgroup这个组中的所有用户对所有资源库都有读写(rw)权限,组名前面要用@如果是用户名,不用加@,比如mj这个用户有读写权限
[/]
mj=rw
- 至于其他精细的权限控制,可以参考authz文件中的其他内容4.启动svn服务器前面配置了这么多,最关键还是看能否正常启动服务器,若启动不来,前面做再多工作也是徒劳。在终端输入下列指令:svnserve -d -r /Users/apple/svn或者输入:svnserve -d -r /Users/apple/svn/mycode没有任何提示就说明启动成功了5.关闭svn服务器如果你想要关闭svn服务器,最有效的办法是打开实用工具里面的“活动监视器”
- 综合上述,我们就可以轻松搭建svn服务器环境了
- 三、使用svn客户端功能1.从本地导入代码到服务器(第一次初始化导入)在终端中输入
svn import /Users/apple/Documents/eclipse_workspace/weibo svn://localhost/mycode/weibo --username=mj --password=123 -m "初始化导入"
- 我解释下指令的意思:将/Users/apple/Documents/eclipse_workspace/weibo中的所有内容,上传到服务器mycode仓库的weibo目录下,后面双引号中的"初始化导入"是注释2.从服务器端下载代码到客户端本地在终端中输入svn checkout svn://localhost/mycode --username=mj --password=123 /Users/apple/Documents/code我解释下指令的意思:将服务器中mycode仓库的内容下载到/Users/apple/Documents/code目录中3.提交更改过的代码到服务器在步骤2中已经将服务器端的代码都下载到/Users/apple/Documents/code目录中,现在修改下里面的一些代码,然后提交这些修改到服务器1> 打开终端,先定位到/Users/apple/Documents/code目录,输入:cd /Users/apple/Documents/code2> 输入提交指令:svn commit -m "修改了main.m文件"这个指令会将/Users/apple/Documents/code下的所有修改都同步到服务器端,假如这次我只修改了main.文件可以看到终端的打印信息:
Sending weibo/weibo/main.m
Transmitting file data .
Committed revision 2.
- 4.更新服务器端的代码到客户端这个应该是最简单的指令了,在终端中定位到客户端代码目录后,比如上面的/Users/apple/Documents/code目录,然后再输入指令:svn update5.至于svn的其他用法,可以在终端输入:svn help
复制代码
anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问
复制代码
帐号是mj,密码是123
我们可以将在passwd里添加的用户分配到不同的用户组里,以后的话,就可以对不同用户组设置不同的权限,没有必要对每个用户进行单独设置权限。
在[groups]下面添加组名和用户名,多个用户之间用逗号(,)隔开
复制代码
复制代码
复制代码
回到顶部
复制代码
复制代码
H. visual studio code怎么设置内置web服务器
Microsoft 今天在其 Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 OS X,Windows 和 Linux 之上的,针对于编写现代 web 和云应用的跨平台编辑器。该应用仍然处于预览版阶段,但是你现在就可以在这里下载体验。
这标志着 Microsoft 第一次向开发者们提供了一款真正的跨平台编辑器。虽然完整版的 Visual Studio 仍然是只能运行在 Windows 之上,但是今天的声明向我们展示了这家公司对于支持其他计算机平台的承诺。
“很多人都使用 Windows 作为他们的开发环境,但是我们也注意到了,还有很多人使用 Linux 和 Mac“,Somasegar,Microsoft 公司的开发者事业部总裁在这周稍早时候对笔者如是说道。”我们想让他们能够在他们习惯的平台上使用我们公司的产品,而不是非要迁徙到 Windows 上“。这些平台上的很多开发者们也更乐意于使用像 Sublime Text 这种轻量级的代码编辑器,而非像 Visual Studio 这种全特性的 IDE。
Visual Studio Code 为开发者们提供了对多种编程语言的内置支持,并且正如 Microsoft 在今天 Build 大会的 keynote 中所指出的,这款编辑器也会为这些语言都提供了丰富的代码补全和导航功能。JavaScript,TypeScript,Node.js 和 ASP.NET 5 开发者也将会获得额外的工具集。
该编辑器也集成了所有一款现代编辑器所应该具备的特性,包括语法高亮(syntax hight lighting),可定制的热键绑定(customizable keyboard bindings),括号匹配(bracket matching)以及代码片段收集(snippets)。Somasegar 也告诉笔者这款编辑器也拥有对 Git 的开箱即用的支持。
正如 Somasegar 所言,新款编辑器部分基于 Microsoft 为 Visual Studio Online 编写 Monaco 编辑器时的经验,但是该公司也正努力将一些 Visual Studio 的语言特性带到 Visual Studio Code 上,例如 Roslyn 项目,Microsoft 的 .NET 编译器平台。并且 Microsoft 声称这些为 VSC 打造的语言服务也会在其他编辑器包括 Sublime Text,Vi 以及 Atom 中可用。
上面提到的一些语言特性已经在其他编辑器中可用了。就在不久前,Microsoft 启动了针对 Sublime Text 的 TypeScript 插件项目,并且 Somasegar 告诉笔者该公司承诺会在未来启动更多类似于这样的项目(归根结底,是为了满足开发者们的需要)。
Visual Studio Code 的发布的确来的很突然。然后仔细想想这在一段时间之前就已经有了预兆,比如 .NET 内核的开源(以及使其能够跨平台运行)或者是社区版的 Visual Studio Community 的启动。
如果是在短短几年前,今天的宣布势必会引起轩然大波,但是今天,这对我们来说更多的是惊喜。
I. visual studio code怎么设置内置web服务器
Microsoft 今天在其 Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 OS X,Windows 和 Linux 之上的,针对于编写现代 web 和云应用的跨平台编辑器。该应用仍然处于预览版阶段,但是你现在就可以在这里下载体验。
这标志着 Microsoft 第一次向开发者们提供了一款真正的跨平台编辑器。虽然完整版的 Visual Studio 仍然是只能运行在 Windows 之上,但是今天的声明向我们展示了这家公司对于支持其他计算机平台的承诺。
J. [code.nginx] Nginx服务器高级配置
这里提及的参数是和IPv4网络有关的Linux内核参数。我们可以将这些内核参数的值追加到Linux系统的/etc/sysctl.conf文件中,然后使用如下命令使修改生效:
这些常用的参数包括以下这些。
** 1. net.core.netdev_max_backlog参数 **
net.core.netdev_max_backlog,表示当每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数目。一般默认值为128(可能不同的Linux系统该数值也不同)。Nginx服务器中定义的NGX_LISTEN_BACKLOG默认为511.我们可以将它调整一下:
** 2.net.core.somaxconn参数 **
该参数用于调节系统同时发起的TCP连接数,一般默认值为128。在客户端存在高并发请求的情况下,在默认值较小,可能导致链接超时或者重传问题,我们可以根据实际需要结合并发请求数来调节此值。
** 3.net.ipv4.tcp_max_orphans参数 **
该参数用于设定系统中最多允许存在多少TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,没有与用户文件句柄关联的TCP套接字将立即被复位,同时给出警告信息。这个限制只是为了防止简单的DoS(Denial of Service,拒绝服务)攻击。一般在系统内存比较充足的情况下,可以增大这个参数的赋值:
** 4.net.ipv4.tcp_max_syn_backlog参数 **
该参数用于记录尚未收到客户端确认信息的连接请求的最大值。对于拥有128MB内存的系统而言,此参数的默认值是1024,对小内存的系统则是128。一般在系统内存比较充足的情况下,可以增加这个参数的赋值:
** 5.net.ipv4.tcp_timestamps参数 **
该参数用于设置时间戳,这可以避免序列号的卷绕。在一个1Gb/s的链路上,遇到以前用过的序列号的概率很大。当此值赋值为0时,禁用对于TCP时间戳的支持。在默认情况下,TCP协议会让内核接受这种“异常”的数据包。针对Nginx服务器来说,建议将其关闭:
** 6.net.ipv4.tcp_synack_retries参数 **
该参数用于设置内核放弃TCP连接之前向客户端发送SYN+ACK包的数量。为了建立对端的连接服务,服务器和客户端需要进行三次握手,第二次握手期间,内核需要发送SYN并附带一个回应前一个SYN的ACK,这个参数主要影响这个进程,一般赋值为1,即内核放弃连接之前发送一次SYN+ACK包,可以设置其为:
** 7.net.ipv4.tcp_syn_retries参数 **
该参数的作用和上一个参数类似,设置内核放弃建立连接之前发送SYN包的数量,它的赋值和上个参数一样即可:
在Nginx配置文件中,有这样两个指令:worker_processes和worker_cpu_affinity,它们可以针对多核CPU进行配置优化。
** 1.worker_processes指令 **
worker_processes指令用来设置Nginx服务的进程数。官方文档建议此指令一般设置为1即可,赋值太多会影响系统的IO效率,降低Nginx服务器的性能。为了让多核CPU能够很好的并行处理任务,我们可以将worker_processes指令的赋值适当的增大一些,最好是赋值为机器CPU的倍数。当然,这个值并不是越大越好,Nginx进程太多可能增加主进程调度负担,也可能影响系统的IO效率。针对双核CPU,建议设置为2或
4。如果是四核CPU,设置为:
设置好worker_processes指令之后,就很有必要设置worker_cpu_affinity指令。
** 2. worker_cpu_affinity指令 **
worker_cpu_affinity指令用来为每个进程分配CPU的工作内核。这个指令用来为每个进程分配CPU的工作内核。这个指令的设置方法有些麻烦。
如下图所示:
worker_cpu_affinity指令的值是由几组二进制值表示的。其中,每一组代表一个进程,每组中的每一位表示该进程使用CPU的情况,1表示使用,0表示不使用。注意,二进制位排列顺序和CPU的顺序是相反的。建议将不同的进程平均分配到不同的CPU运行内核上。
如果设置的Nginx服务的进程数为4,CPU为4核,因此会有四组值,并且每组有四位,所以,此指令的设置为:
四组二进制数值分别对应4个进程,第一个进程对应0001,表示使用第一个CPU内核。第二个进程对应0010,表示使用第二个CPU内核,以此类推。
如果将worker_processes指令的值赋值为8,即赋值为CPU内核个数的两倍,则worker_cpu_affinity指令的设置可以是:
如果一台机器的CPU是八核CPU,并且worker_processes指令的值赋值为8,那么worker_cpu_affinity指令的设置可以是:
** 1.keepalive_timeout指令 **
该指令用于设置Nginx服务器与客户端保持连接的超时时间。
这个指令支持两个选项,中间用空格隔开。第一个选项指定客户端连接保持活动的超时时间,在这个时间之后,服务器会关闭此连接。第二个选项可选,其指定了使用Keep-Alive消息头保持活动的有效时间,如果不设置它,Nginx服务器不会向客户端发送Keep-Alive消息头以保持与客户端某些浏览器(如Mozilla、Konqueror等)的连接,超过设置的时间后,客户端就可以关闭连接,而不需要服务器关闭了。你可以根据自己的实际情况设置此值,建议从服务器的访问数量、处理速度以及网络状态方面考虑。下面是此指令的设置示例:
该设置表示Nginx服务器与客户端连接保持活动的时间是60s,60s后服务器与客户端断开连接。使用Keep-Alive消息头保持与客户端某些浏览器(如Mozilla、Konqueror等)的连接时间为50s,50s后浏览器主动与服务器断开连接。
** 2.send_timeout指令 **
该指令用于设置Nginx服务器响应客户端的超时时间,这个超时时间仅针对两个客户端和服务器之间建立连接后,某次活动之间的时间。如果这个时间后客户端没有任何活动,Nginx服务器将会关闭连接。此指令的设置需要考虑服务器访问数量和网络状况等方面。下面是此指令的设置示例:
该设置表示Nginx服务器与客户端建立连接后,某次会话中服务器等待客户端响应超时10s,就会自动关闭连接。
** 3.client_header_buffer_size指令 **
该指令用于设置Nginx服务器允许的客户端请求头部的缓冲区大小,默认为1KB。此指令的赋值可以根据系统分页大小来设置。分页大小可以用以下命令取得:
有过Nginx服务器工作经验的可能遇到Nginx服务器返回400错误的情况。查找Nginx服务器的400错误原因比较困难,因为此错误并不是每次都会出现,出现错误的时候,通常在浏览器和日志里也看不到任何有关提示信息。根据实际的经验来看,有很大一部分情况是客户端的请求头部过大造成的。请求头部过大,通常是客户单cookie中写入了较大的值引起的。于是适当增大此指令的赋值,允许Nginx服务器接收较大的请求头部,可以改善服务器对客户端的支持能力。一般将此指令赋值为4KB大小,即:
** 4.multi_accept指令 **
该指令用于配置Nginx服务器是否尽可能多的接收客户端的网络连接请求,默认值为off。
本节涉及的指令与Nginx服务器的事件驱动模型密切相关。
其中,number为设置的最大数量。结合worker_processes指令,我们可以计算出Nginx服务器允许同时连接的客户端最大数量Client = worker_processes * worker_connections / 2;
在使用Nginx服务器的过程中,笔者曾经遇到过无法访问Nginx服务器的情况,查看日志发现一直在报如下错误:
根据报错信息,推测可能是Nginx服务器的最大访问连接数设置小了。此指令设置的就是Nginx服务器能接受的最大访问量,其中包括前端用户连接也包括其他连接,这个值在理论上等于此指令的值与它允许开启的工作进程最大数的乘积。此指令一般设置为65535:
此指令的赋值与linux操作系统中进程可以打开的文件句柄数量有关系。按照以上设置修改此项赋值以后,Nginx服务器报以下错误:
究其原因,Linux系统中有一个系统指令open file resource limit,它设置了进程可以打开的文件句柄数量。worker_connections指令的赋值当然不能超过open file resource limit的赋值。可以使用以下命令查看在你的Linux系统中open file resource limit的赋值。
可以通过一下命令将open file resource limit指令的值设为2390251:
这样,Nginx的worker_connections指令赋值为65535就没问题了。
其中,limit为Linux平台事件信号队列的长度上限值。
该指令主要影响事件驱动模型中rfsig模型可以保存的最大信号数。Nginx服务器的每一个工作进程有自己的事件信号队列用于暂存客户端请求发生信号,如果超过长度上线,Nginx服务器自动转用poll模型处理未处理器的客户端请求。为了保证Nginx服务器对客户端请求的高效处理,请大家根据实际的客户端并发请求数量和服务器运行环境的处理能力设定该值。设置示例为:
其中,number为要设置的数量,默认值均为32。
其中,number为要设置的数量,默认值均为512.
使用kequeue_changes方式,可以设置与内核之间传递事件的数量。
其中,number为要设置的数量,默认值均为512。
7.rtsig_signo指令
该指令用于设置rtsig模式使用的两个信号中的第一个,第二个信号是在第一个信号的编号上加1,语法为:
默认的第一个信号设置为SIGRTMIN+10。
提示
在Linux中可以使用一下命令查看系统支持的SIGRTMIN有哪些。
8.rtsig_overflow_* 指令
该指令代表三个具体的指令,分别为rtsig_overflow_events指令、rtsig_overflow_test指令和rtsig_overflow_threshold指令。这些指令用来控制当rtsig模式中信号队列溢出时Nginx服务器的处理方式,语法结构为:
其中,number是要设定的值。
rtsig_overflow_events指令指定队列溢出时使用poll库处理的事件数,默认值为16。
rtsig_overflow_test指令设定poll库处理完第几件事件后将清空rtsig模型使用的信号队列,默认值为32。
rtsig_overflow_threshold指令指定rtsig模式使用的信号队列中的事件超过多少时就需要清空队列了。