nginx安装配置
nginx安装
1、环境
#在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel
安装依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2、配置环境(离线安装,如果yum安装装了就不用了)
#安装 pcre-devel
cd /usr/local/src/
#上传,解压 pcre-8.35.tar.gz
下载: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz)
cd pcre-8.35
#编译安装
./configure
make && make install
#查看pcre版本
pcre-config --version
3、安装 Nginx
#指定文件路径
./configure --prefix=/u01/nginx --conf-path=/u01/nginx/nginx.conf --error-log-path=/u01/nginx/error.log --http-log-path=/u01/nginx/access.log --pid-path=/u01/nginx/nginx.pid --lock-path=/u01/nginx/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_dav_module --with-http_stub_status_module --with-threads --with-file-aio
#编译安装
make && make install
参数
--prefix= 指向安装目录。
--sbin-path= 指定执行程序文件存放位置。
--modules-path= 指定第三方模块的存放路径。
--conf-path= 指定配置文件存放位置。
--error-log-path= 指定错误日志存放位置。
--pid-path= 指定pid文件存放位置。
--lock-path= 指定lock文件存放位置。
--user= 指定程序运行时的非特权用户。
--group= 指定程序运行时的非特权用户组。
--builddir= 指向编译目录。
--with-rtsig_module 启用rtsig模块支持。
--with-select_module 启用select模块支持,一种轮询处理方式,不推荐在高并发环境中使用,禁用:--without-select_module。
--with-poll_module 启用poll模块支持,功能与select相同,不推荐在高并发环境中使用。
--with-threads 启用thread pool支持。
--with-file-aio 启用file aio支持。
--with-http_ssl_module 启用https支持。
4、查看
#查看版本
/u01/nginx/sbin/nginx -v
#nginx安装完成
#查看80端口有没有开启
firewall-cmd --query-port=80/tcp
#开启80端口
firewall-cmd --add-port=80/tcp --permanent
启动
启动 ./nginx -c /u01/nginx/nginx.conf
./nginx -c /u01/nginx/nginx.conf -s stop
./nginx -c /u01/nginx/nginx.conf -s reload
nginx编译安装之后,启动出现了:nginx: [emerg] getpwnam("nginx") failed
这个是因为我编译安装nginx的时候指定了--user=nginx和--group=nginx,去除就没事了
但是出于安全性考虑,还是用独立权限的账户运行(root权限太大,web渗透的时候可利用的机会太多了)
#执行下面这个
useradd -s /sbin/nologin -M nginx
配置
一、nginx只允许域名访问,禁止ip访问
这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生。
修改配置文件nginx.conf两种方法:
1)在server段里插入如下正则:
listen 80;
server_name www.yuyangblog.net;
if ($host != 'www.yuyangblog.net'){
return 403;
}
2)添加一个server
新加的server(注意是新增,并不是在原有的server基础上修改)
server {
listen 80 default;
server_name _;
return 403;
}
#原来server里面插入:
listen 80;
二、反向代理
配置server里面
server {
listen 80;
server_name 192.168.32.135; #nginx地址
location ~ /edu/ {
root html;
proxy_pass http://192.168.32.136:8090;
index index.html index.htm;
}
location ~ /app/ {
root html;
proxy_pass http://192.168.32.136:8091;
index index.html index.htm;
}
三、负载均衡
在http块里配置,配置两个地方,upstream myserver,location
upstream myserver {
server 192.168.32.136:8090 weight = 1;
server 192.168.32.136:8091 weight = 1; #权重
}
server {
listen 80;
server_name 192.168.32.135;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}