前话
本地电脑使用win10系统,需要在公司的测试服务器上,监听端口6789,部署自己的网站。因为服务器上已有的项目都是php项目,这次也新建一个php文件,作为展示。要求https也能访问到。该测试服务器上环境已经都是安装好了的,linux系统,apache+nginx。此记录配置使用过程。
一、登陆测试服务器
cmd指令打开终端面板,输入指令:ssh root@服务器ip
一些linux常用指令:
- 连接服务器:ssh 用户名@服务器ip
- 查看当前目录位置:pwd
- 进入到home根目录:cd ~,如root用户就进入到root目录下
- 进入系统根目录:cd /
- 查看当前IP,验证是否连接服务成功:ifconfig
- 查看服务器进程信息,| grep x 是过滤条件:ps -ef | grep nginx
- 显示网络相关信息,| grep x 是过滤条件:netstat -lnpt | grep 6712
- 动态展示所以程序使用CPU,内存使用情况:top
- 把进程号46102的程序关掉:kill -9 46102
- 展示当前目录下内容:ls
- 展示当前目录下内容,有详细文件信息:ll
怎么看这些文件信息呢?
- 第一列数据10位,是文件类型和权限。第1位是文件类型:
- d :目录
- - :普通文件
- l : 链接文件
- p :管理文
- b :块设备文件
- c :字符设备文件
- s :套接字文件
- 第2位后3位一组表示不同用户对该文件的权限,如:
[drwxrwxr-x]
,其中[rwx]
是所有者的权限,[rwx]
是所属组的权限,[r-x]
是其他人的权限,权限解析:- r :可读
- w:可写
- x:可执行,如果是文件目录是进入权限
- - :表示没有对应位置的权限
- 第2列数据,如果是目录表示其下一级子目录的个数,其中包含了…/ 和 ./ ,所以减2才是真实的个数。
- 第3第4列表示,所有者和所在的组
- 第5列表示文件大小,单位是字节,目录的是只表示目录符大小,非所有子文件大小。
- 第6第7列,表示修改时间
二、apache配置(http和https)
- 找到apache配置文件
一般默认的路径是etc/httpd/conf/
,里面就有配置文件httpd.conf
,实际具体路径看各公司的情况,我们公司服务器程序安装路径都是在/usr/local/soft/
下,所以apache配置文件路径:```/usr/local/soft/apache/conf/`httpd.conf````。 - 修改配置文件
httpd.conf 配置可以配置网页主目录,连接端口,服务器名称等。本次要配置添加监听6780端口,指向自己准备发布的网站。 - 根据现有服务器配置,找到新增监听6780端口配置
根据/usr/local/soft/apache/conf/`httpd.conf
文件中虚拟机的配置:
# Virtual hosts
Include conf/extra/httpd-vhosts.con
根据路径查看httpd-vhosts.con文件:
DefaultLanguage zh-CN
Include conf/extra/apps/*.conf
是将conf/extra/apps/
下所有的配置文件,都包括了。所以在此目录下创建自己的配置文件便可,test.conf:
Listen 6789
<VirtualHost *:6789>
ServerAdmin webmaster@xxx.com.cn
#文档根目录
DocumentRoot "/usr/local/app/test"
#域名
ServerName test.xxx.com.cn
#错误日志记录
ErrorLog "/usr/local/logs/app-runtime/test.log"
CustomLog "/usr/local/logs/app-runtime/test.log" common
#配置rewrite相关选项
<Directory "/usr/local/app/test" >
Options FollowSymLinks
#允许定义.htaccess文件
AllowOverride ALL
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
其中配置的网站文件路径,就在/usr/local/app/
下创建test
文件夹,下创建index.php
:
<?php
echo 'Hello World'
- 配置更改,需要重启服务器的apache
- 如果当前用户的apache已经安装为linux的服务的话,可以使用以下命令进行以上操作。
* 启动apache
service httpd start
* 停止服务apache
service httpd stop
* 重新启动apache
service httpd restart
- 或者可以进入apache的程序文件,直接执行重启。一般文件夹
sbin
或bin
放的都是可执行文件。
- http:// xxx.xx.x.xxx :6789正常访问
- 配置https 访问该网站
刚创建的配置文件conf/extra/apps/test.conf
添加如下配置,可以换个端口号
Listen 6713
<VirtualHost *:6713>
#SSL配置
SSLEngine on
SSLCertificateFile /usr/local/soft/nginx/ssl/server.crt
SSLCertificateKeyFile /usr/local/soft/nginx/ssl/server.key
ServerAdmin webmaster@xxx.com.cn
#文档根目录
DocumentRoot "/usr/local/app/test"
#域名
ServerName test.xxx.com.cn
#错误日志记录
ErrorLog "/usr/local/logs/app-runtime/test.log"
CustomLog "/usr/local/logs/app-runtime/test.log" common
#配置rewrite相关选项
<Directory "/usr/local/app/test" >
Options FollowSymLinks
#允许定义.htaccess文件
AllowOverride ALL
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
SSL配置需要相关的证书,需要提前下载。
7. 重启服务器apache
8. https://xxx.xx.x.xxx:6713 正常访问
三、nginx配置
https配置,也可以使用nginx配置。
- 找到nginx配置文件
该服务器上照样在/usr/local/soft/nginx/
目录下找到conf/nginx.conf
配置文件,加下如下内容(和apache配置的端口不可重复,需换个端口):
server {
listen 6712;
server_name 0.0.0.0:6712;
ssl on;
ssl_certificate /usr/local/soft/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/soft/nginx/ssl/server.key;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://xxx.xx.x.xxx:6789;
proxy_read_timeout 300s;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'Upgrade';
}
}
配置https://xxx.xx.x.xxx:6712 代理到 http://xxx.xx.x.xxx:6789 ,访问的用一网站文件。
2. 重启nginx
该服务器上nginx未配置成linux服务,所以到nginx目录下找到执行文件:
3. https://xxx.xx.x.xxx:6712 正常访问
四、查询端口信息
- 查询 端口信息:netstat -lnpt | grep 端口号
netstat -lnpt | grep 6789 / netstat -lnpt | grep 6713 / netstat -lnpt | grep 6712
信息中显示httpd表示是apache发出的监听,或者是nginx发出的端口监听,
httpd前面的是进程号。
- 如果遇到请求某端口失败,可能是apache或nginx没启动没启动。
五、遇到问题
- nginx -s reload失败
解决方法:将启动文件的位置指向配置文件的位置,不然无法生效,-c两边有空格
该服务器nginx执行文件路径:/usr/local/soft/nginx/sbin/nginx
,
nginx配置文件路径:/usr/local/soft/nginx/conf/nginx.conf
,执行如下指令:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf