linux下nginx的安装及配置
一、安装nginx前,我们首先要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载:
yum install gcc-c++
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel ## 如果已安装,则remove掉
yum remove nginx
wget https://nginx.org/download/nginx-1.11.3.tar.gz
我们一般安装linux软件都会在/usr/local目录下,然后进行解压编译安装:
tar -zxvf nginx-1.11.3.tar.gz mv nginx-1.11.3 /usr/local/nginx-1.11.3
./configure --prefix=/usr/local/nginx
## 安装到/usr/local/nginx的nginx目录下
make
make install
此时安装成功:

此时源码包和安装后的包都有了,进入到nginx目录下,(一般要不要修改源码包,再make make install,需要看修改什么)

如上,进入到sbin/nginx,启动即可。
二、配置和说明:
接下来介绍下启动/停止/重启的具体方法,进入目录后我们可以用执行sbin/nginx来启动,也可以通过conf/nginx.conf来启动,停止我们可以查询进程使用kill -9 进程号/pkill -9 nginx来结束nginx服务,重启可以通过 sbin/nginx -s reload来重启,具体命令大家请看如图所示

三、nginx的开发实例
在nginx.conf文件增加代码
gzip on;
include ../conf.d/*.conf;
这样就可以在conf.d文件夹下添加配置文件,例如
server{
listen 80;
server_name felab.**.com;
root /home/project/RDFELabClient/;
}
/usr/local/nginx/sbin/nginx -t试下是否配置有问题
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfu
重启绑定host就可以正式访问了
四、把nginx设置全局变量
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ /usr/local/nginx/sbin/nginx是nginx的启动命令 /usr/sbin/就是环境变量目录
五、如果修改的配置在执行发生下面的错误
nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"或者修改配置不生效
service nginx restart #不生效
尝试执行下
/usr/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
六、nginx的端口代理
server {
listen 80; # 监听端口
server_name npm.xxx.com; # 站点域名
index index.html index.htm index.php; # 默认导航页
location / {
proxy_pass http://127.0.0.1:4873/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#以下是一些反向代理的配置,可选。
proxy_set_header Host $host;
client_max_body_size 10m;
client_body_buffer_size 128k;
}
location ~ ^/verdaccio/(.*)$ {
proxy_pass http://127.0.0.1:4872/$1;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 500 502 503 504 http://www.xxx.com/Errors.htm;
}
七、websocket的配置
如果报“failed: Error during WebSocket handshake: Unexpected response code: 400”错误,可能是nginx的配置关键参数没有。
server{
listen 80;
server_name fedata.xxx.com;
location / {
proxy_pass http://127.0.0.1:7002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
}
proxy_set_header Upgrade 把代理时http请求头的Upgrade 设置为原来http请求的请求头,ws协议的请求头为websocketproxy_set_header Connection 因为代理的ws协议,所以http请求头的Connection设置为Upgradeproxy_set_header X-Real-IP 给代理设置原http请求的ip,填写$remote_addr 即可至于websocket协议的response的参数,在反向代理的时候不用管。
到这里,Nginx反向代理webSocket的配置就完成了,重启Nginx,用websocket连接试试,如果websocket成功连接,说明Nginx反向代理websocket已经成功了.
8、nginx 的upsteam实现负载
upstream app.**.com {
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
server backup1.example.com:8080 backup;
}
server {
listen 80;
server_name app.**.com;
access_log /home/nginx/logs/app.xueersi.com_access.log main;
error_page 500 502 503 504 http://www.xueersi.com/wait.html;
# include /home/openresty/nginx/conf/nconf/xueersissl.conf;
location / {
set $upstream 'app.**.com';
proxy_pass http://$upstream;
add_header 'Access-Control-Allow-Origin' '$http_origin';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
client_max_body_size 500m;
client_body_buffer_size 128k;
proxy_ignore_client_abort on;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 128k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_next_upstream off;
add_header Xes-App $upstream_http_server;
}
}
weight=number设定服务器的权重,默认是1。max_fails=number设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。 失败的尝试次数默认是1。设为0就会停止统计尝试次数,认为服务器是一直可用的。
linux下nginx的安装及配置的更多相关文章
- Linux下Nginx的安装与配置
安装前需要安装pcre:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/1.解压缩: tar xjpf pcre-7.8.tar.b ...
- linux下nginx的安装和配置
准备目录 [root@sqh ~]# mkdir /usr/local/nginx [root@sqh ~]# cd /usr/local/nginx 添加一些支持和依赖 1.安装gcc 安装redi ...
- Linux下nginx编译安装教程和编译参数详解
这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...
- Linux下Qt的安装与配置
参考资料:http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html Linux 下编译.安装.配置 QT 下载qt 这里用的是4.7. ...
- Linux 下编译、安装、配置 QT
转自Linux 下编译.安装.配置 QT 注意:编译安装耗时费力,且很容易出错,要不断调整编译参数,不推荐使用,否则这将会是一个纠结痛苦的过程. 打算做嵌入式图像处理,计划方案嵌入式Linux+Ope ...
- .Neter玩转Linux系列之六:Linux下MySQL的安装、配置、使用
一.Linux安装MySQL (1)下载安装包:https://dev.mysql.com/downloads/mysql/ (2)解压并安装 命令:tar zxvf 文件名 解压完成之后,重名一下文 ...
- linux下svn的安装与配置
---恢复内容开始--- linux下svn的安装与配置 Linux发行版本:CentOS6.5 1.安装subversion sudo yum -y install subversion 2.创建s ...
- linux下redis的安装及配置启动
linux下redis的安装及配置启动 标签: redisnosql 2014-10-24 14:04 19732人阅读 评论(0) 收藏 举报 分类: 数据与性能(41) wget http:/ ...
- linux下vsftpd的安装及配置使用详细步骤(推荐)
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BS ...
随机推荐
- (C/C++) CRC8計算實現
CRC計算通常會有分成 CRC8. CRC16. CRC12. CRC32. CRC8 = X^8 + X^2 + X + 1 0x07(0x107) CRC8 = X^8 + X^5 + X^ ...
- 故障排查-linux命令测试端口连通性
方法一:telnet法 预置条件:安装telnet step 1.rpm -qa telnet-server(无输出表示telnet-server未安装,则执行step2:否则执行step3) ste ...
- Unity 行为树-中断机制
一.中断类型 设置了中断之后,行为树会检测执行过的子条件节点,当条件节点的状态发生变化时,会中断正在执行的Running节点,转而立即执行该条件节点. 行为树的打断类型有4种: None Self L ...
- python学习,day2:列表的复制,字符串的处理
---恢复内容开始--- 元组(tuple)是只读列表,不能修改,列表用中括号,元组用小括号.只能用index和count两个命令. ---恢复内容结束--- 字符串处理的代码 # coding=ut ...
- mfix中更改time dependent VTK filename的最大时间步数的容量
默认是0000四位,有可能保存文件多了以后不够用,可以在源码中修改,修改以后效果: 源码位置: 把 I4. 改成 I5.
- 进阶篇:2.1)DFMA实施障碍和关键
本章目的:了解DFMA实施障碍与关键. 1.实施的障碍 面向制造和装配的产品开发能够降低产品成本.提高产品质量.缩短产品开发周期,但是,由于传统产品开发思想和各种条件的限制,实施面向制造和装配的产品开 ...
- 关于如何爬虫妹子图网的源码分析 c#实现
网上也出现一些抓取妹子图的python 代码,今天我们用c#实现爬虫过程. 请看我的网站: www.di81.com private void www_94xmn_Com(string url, st ...
- 通过securecrt跳板机登录linux服务器
1 需要开运维平台开通用户对某台服务器的访问权限: 2 使用自己的账号密码登录(sso账号密码) 登录后,需要输入一个服务器分配给每个人唯一的密码:
- python定义的一个简单的shell函数的代码
把写代码过程中经常用到的一些代码段做个记录,如下代码段是关于python定义的一个简单的shell函数的代码. pipe = subprocess.Popen(cmd, stdout=subproce ...
- JUnit快速入门
一.一个简单的Junit测试流程: 1.在项目中导入junit-4.7.jar包, 方法:右击项目,选择Build Path->Configure Build Path->Librarie ...