Nginx环境搭建

下载解压Nginx源码包

可以通过已有的压缩包

这里也可以通过yum的在线下载

wget http://nginx.org/download/nginx-1.13.7.tar.gz

tar -zxf nginx-1.14.2.tar.gz -C [目标路径]

安装nginx

进入解压后的源码包内

cd nginx-1.14.2/

执行命令之前,要做一件事情,解决依赖,不然安装不了nginx

一键安装依赖包

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

开始安装nginx

执行 ./configure

以下表示成功

编译 make

安装 make install

设置配置文件

vim conf/nginx.conf

启动命令

nginx启动命令在 /usr/local/nginx/sbin/ 目录下

可以拷贝到 /usr/bin/ 快捷启动

./nginx 启动

指定配置文件启动

nginx -c /usr/local/nginx/conf/nginx.conf

./nginx -s stop 关闭

./nginx -s reload 重启

iptables需要开启80端口否则无法访问,iptables -I INPUT -p tcp --dport 80 -j ACCEPT

简单配置端口转发

进入配置文件

vim conf/nginx.conf

创建一个新的应用服务器来转发端口

server {# 监听8090端口listen  8090;location / {# 访问8090端口转发到80端口的应用服务器上proxy_pass  http://127.0.0.1:80;}
}

重启nginx nginx -s reload

通过配置负载均衡池配置端口转发

进入配置文件

vim conf/nginx.conf

# 配置负载均衡池
upstream demo_pool{server 127.0.0.1:80;
}
server {listen 1234; #拦截端口server_name  demo.com; #域名配置# access_log logs/bolg.log;# error_log logs/bolg.error;#将所有请求转发给dome_pool池的应用处理location / {proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://demo_pool; #如果是ssl更改成https}
}

访问 http://192.168.80.11:1234

server_name的匹配

server {listen 80;server_name www;location / {default_type text/html;content_by_lua 'ngx.say("<p>www</p>")';}
}
server {listen  80;server_name www.r0cky.com;location / {default_type text/html;content_by_lua 'ngx.say("<p>www.r0cky.com</p>")';        }
}
server {listen 80;server_name www.r0cky.*;location / {default_type text/html;content_by_lua 'ngx.say("<p>www.r0cky.*</p>")';}
}
server {listen 80;server_name ~\w+.com;location / {default_type text/html;content_by_lua 'ngx.say("<p>~\w+.com</p>")';        }
}
server {listen 80;server_name ~.*r0cky.com;location / {default_type text/html;content_by_lua 'ngx.say("<p>~.*r0cky.com</p>")';}
}

不同的域名会通过请求头中的HOST字段,匹配到特定的server块,转发到对应的应用服务器中去。

hosts

192.168.80.11   www.r0cky.com
192.168.80.11   www.r0cky.org
192.168.80.11   blog.r0cky.com
192.168.80.11   r0cky.com

访问 www.r0cky.com


访问 www.r0cky.org


访问 blog.r0cky.com


匹配顺序

server_name与host匹配优先级如下:

  1. 完全匹配
  2. 通配符在前的,如.test.com
  3. 在后的,如www.test.*
  4. 正则匹配,如~^.www.test.com$

如果都不匹配

  1. 优先选择listen配置项后有default或default_server的
  2. 找到匹配listen端口的第一个server块

PHP安装部署

服务器基础环境和依赖安装

如果系统自带 Apache、PHP、MySQL,先卸载

yum remove httpd

yum remove php

yum remove mysql

升级所有软件包

yum update -y

# 安装可能用到的软件包,大部分其实已经内置在系统中
# gcc:GNU 编译器套装
# gcc-c++:GCC 的 C++ 支持
# autoconf:在sh下制作供编译、安装和打包软件的配置脚本的工具
# libjpeg-turbo-static:处理 JPEG 图像数据格式的自由库
# libpng:处理 PNG 图像数据格式的自由库
# freetype: 字体光栅化库
# libxml2: 解析XML文档的函数库
# zlib: 提供数据压缩之用的库
# glibc:C函数库
# glib2:跨平台的、用C语言编写的五个底层库的集合
# bzip2:比传统的 gzip 或者 ZIP 的压缩效率更高的库
# ncurses:虚拟终端中的“类GUI”应用软件工具箱
# curl:利用URL语法在命令行下工作的文件传输工具
# e2fsprogs:用以维护ext2,ext3和ext4文件系统的工具程序集
# krb5-libs:网络身份验证系统
# libidn:通过IETF国际域名(IDN)实施字符串预处理、Punycode 和 IDNA规格定义的工具
# openssl:安全通信软件包
# openldap:轻型目录访问协议
# nss-pam-ldapd:使用目录服务器的 nsswitch 模块
# openldap-clients:LDAP 客户端实用工具
# openldap-servers:LDAP 服务
# bison:自动生成语法分析器程序
# lrzsz:远程上传和下载文件
# libmcrypt:mcrypt 算法库
# mhash:mhash 算法库
# ImageMagick:用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装
# libmemcached: memcache 客户端

安装依赖

先安装

yum install -y epel-release

yum -y install gcc gcc-c++ autoconf libjpeg-turbo-static libjpeg-turbo-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel pcre pcre-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-libs krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss-pam-ldapd openldap-clients openldap-servers bison lrzsz libmcrypt libmcrypt-devel mcrypt mhash ImageMagick ImageMagick-devel libmemcached libmemcached-devel

yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel

创建用户和用户组

groupadd www

useradd -g www -s /sbin/nologin -M www

解压PHP安装包

tar -zxf php-5.6.40.tar.gz

预编译安装

cd php-5.6.40/

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql --with-mysqli --with-curl --with-mcrypt --with-gd --with-openssl --with-mhash --with-xmlrpc --with-gettext --with-bz2 --with-zlib --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-libxml-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-gd-native-ttf --enable-pcntl --enable-sockets --enable-zip --enable-soap --enable-ftp --enable-exif --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --without-pear

参数说明

""" 安装路径 """
--prefix=/usr/local/php56 \
""" php.ini 配置文件路径 """
--with-config-file-path=/usr/local/php56/etc \
""" 优化选项 """
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
""" 启用 opcache,默认为 ZendOptimizer+(ZendOpcache) """
--enable-opcache \
""" FPM """
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
""" MySQL """
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
""" 国际化与字符编码支持 """
--with-gettext \
--enable-mbstring \
--with-iconv \
""" 加密扩展 """
--with-mcrypt \
--with-mhash \
--with-openssl \
""" 数学扩展 """
--enable-bcmath \
""" Web 服务,soap 依赖 libxml """
--enable-soap \
--with-libxml-dir \
""" 进程,信号及内存 """
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
""" socket & curl """
--enable-sockets \
--with-curl \
""" 压缩与归档 """
--with-zlib \
--enable-zip \
--with-bz2 \
""" GNU Readline 命令行快捷键绑定 """
--with-readline

安装

make && make install

配置PHP

配置文件

cp php.ini-development /usr/local/php/etc/php.ini

php-fpm 服务

复制启动脚本到 init.d 目录并修改权限

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod +x /etc/init.d/php-fpm 或者 chmod 700 /etc/init.d/php-fpm

启动 php-fpm

service php-fpm start

php-fpm 可用参数 start | stop | force-quit | restart | reload | status

方便启动

两种方法

  1. 创建快捷方式

    ln -s /usr/local/php/bin/php /usr/bin/

    ln -s /etc/init.d/php-fpm /usr/bin/php-fpm

  2. 设置环境变量

    vim ~/.bash_profile

    PATH=$PATH:$HOME/bin
    改为:
    PATH=$PATH:$HOME/bin:/usr/local/php/bin

    使环境变量生效

    ~/.bash_profile

查看版本

php -v

Nginx+PHP配置

修改Nginx的配置文件

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {root           /usr/local/nginx/html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;# fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;
}

访问 192.168.80.11/index.php

初期环境搭建完成!可以开始渗透复现了。后期完善Mysql等环境

转载于:https://www.cnblogs.com/r0ckysec/p/11440835.html

Nginx反向代理+PHP服务器搭建相关推荐

  1. 使用Nginx反向代理tomcat服务器

    使用Nginx反向代理tomcat服务器 2015-04-23 11:19 244人阅读 评论(0) 收藏 举报  分类: Tomcat(5)   LNMP/LAMP开发平台研究(10)  版权声明: ...

  2. nginx反向代理缓存服务器构建

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 代理服务可简单的分为正向代理和反向代理: ...

  3. nginx 反向代理微信服务器问题

    需求: 内网服务器 B 需要访问微信服务器,所以做反向代理 环境配置: 服务器 A 能访问外网 服务器 B 不能访问外网 解决办法: 修改服务器 B 的 hosts 文件,域名指向服务器 A A的IP ...

  4. Tomcat系列之服务器的基本配置及Nginx反向代理tomcat服务

    大纲 一.Tomcat 基本配置 1.为Tomcat提供SysV脚本 2.catalina 脚本讲解 3.telnet 登录管理Tomcat 4.配置Tomcat虚拟主机 5.Tomcat图形管理接口 ...

  5. Nginx高性能反向代理web服务器

    基础 Nginx简介 背景介绍 Nginx("engine x")一个具有高性能的[HTTP]和[反向代理]的[WEB服务器],同时也是一个[POP3/SMTP/IMAP代理服务器 ...

  6. Nginx反向代理的实战案例

    Nginx反向代理实战 服务器1,2,3存在两种情况 第一种情况: 三台服务器的内容不一样. 第二种情况: 三台服务器的内容是一样. 如果服务器1.服务器2和服务器3的内容不一样,那我们可以根据用户请 ...

  7. 云服务器,Linux上安装xampp,搭建node服务,云服务器Firewalld、iptables,nginx反向代理

    目录 写在前面的 前期准备 下载xampp: xampp安装步骤 1.首先链接远程linux服务器 2.xshell终端执行安装命令 3.启动:xampp服务 4.访问数据库,修改数据库密码 安装守护 ...

  8. Nginx服务器、Nginx虚拟主机、Nginx反向代理

    nginx安装[依赖包,./configure模块] nginx升级[make upgrade] nginx[默认welcome测试网站] nginx[用户认证] nginx [server{ }虚拟 ...

  9. 搭建相亲源码,如何实现Nginx反向代理

    在相亲源码搭建中.为了实现负载均衡首先要实现Nginx反向代理,那么方向代理是怎样实现的呢? 1.服务器的映射 server {listen 8080;server_name 10.99.89.71; ...

最新文章

  1. [Angularjs]ng-show和ng-hide
  2. java final
  3. Golang加密md5
  4. ios修改了coredata数据结构后,更新安装会闪退
  5. 分享一次与SharpDX坑爹Bug刚正面的过程
  6. python位运算符_详细介绍Python语言中的按位运算符
  7. mysql select high_priority_MySQL进阶SELECT语法篇
  8. 解决 jQuery 实现填充父窗口iframe里元素的值的问题 如window.parent.document.getElementById().innerHTML...
  9. flask对mysql数据库增删改查_flask后台框架1.4(mysql配置+数据库增删改查)-Go语言中文社区...
  10. python读取文本中的内容
  11. word参考文献格式设置(国标下载)
  12. postman设置为中文
  13. Python Traceback (most recent call last)【StopIteration】
  14. 读书笔记《推荐系统实战》| 好的推荐系统
  15. DHCP V6 server配置
  16. 服务式办公室,价格影响选择
  17. matplotlib画的折线图
  18. ES-PHP 聚合查询时 No alive nodes found in your cluster
  19. “福鼎一杯”:“一杯严选”与“茶人的栖息地”——见茶卸甲 | AiHi资讯
  20. ie浏览器打不开闪退_ie浏览器点开闪退_ie浏览器打不开?就是闪退.别的可以_ie浏览器打不开闪退...

热门文章

  1. 怎么样删除计算机管理员用户账户,怎么样删除电脑中多出来的管理员账户
  2. web前端面试题— 简答题
  3. 朱棣文 哈佛开学典礼演讲
  4. 知网caj文件转pdf(无需下载任何软件,傻瓜式操作,必看!!!)
  5. 终于搞懂Dijkstra算法了
  6. matlab 可见度和衬噪比
  7. 项目管理中的各种技术,分析图(简介+应用子过程)
  8. 墨干V1.1.0: 新一代结构化编辑器的雏形
  9. 设计模式(四)注册模式 解决:解决全局共享和交换对象
  10. Spring基础----相关类